2012-06-11 24 views
8

मैं 150+ टेबल के साथ एक विशाल ईटीएल प्रोजेक्ट पर काम कर रहा हूं और डिजाइन के दौरान मुझे गंतव्य कॉलम नामों और डेटा टेबल पर कुछ तालिकाओं के लिए एक बड़ा बदलाव करना पड़ा।इंटीग्रेशन सर्विसेज में गंतव्य स्कीमा मेटाडाटा रीफ्रेश करें

मेरी समस्या यह है कि मैं एसएसआईएस को अपनी तालिकाओं के लिए नई स्कीमा देखने के लिए नहीं मिल सकता। तो मैं जानना चाहूंगा कि मैं इस स्कीमा को रीफ्रेश करने के लिए एसएसआईएस कैसे प्राप्त कर सकता हूं? मुझे यह हास्यास्पद लगता है कि डेटाबेस स्कीमा से मेटाडेटा को अपडेट करने के लिए एसएसआईएस को बताने का कोई तरीका नहीं है, खासकर डेटाबेस माइग्रेशन के लिए।

स्क्रैच से प्रोजेक्ट को पुनर्निर्मित करना सवाल से बाहर है क्योंकि मैंने पहले से ही कुछ घंटे बिताए हैं। मैन्युअल रूप से बदलकर 400+ कॉलम बदल गए हैं, यह भी एक विकल्प नहीं है।

+1

यह शायद आपकी समस्या का समाधान नहीं करेगा लेकिन यह मदद कर सकता है। संपूर्ण एसएसआईएस पैकेज सिर्फ एक्सएमएल है। आप "ढूंढें और बदलें" का उपयोग करके एक्सएमएल डेटा बदल सकते हैं या अपना खुद का टूल बना सकते हैं। यदि आप एसएसआईएस में परिवर्तनों को ट्रैक करना चाहते हैं तो आपको यूडीएम (डेटा स्रोत दृश्य) का उपयोग करना होगा। – devarc

+0

मैंने वास्तव में पहले मेरे पैकेज एक्सएमएल में देखा लेकिन वहां बदलने के लिए बहुत सारे कॉलम थे, इसलिए कुछ बदलावों की विशिष्टता के कारण एक खोज/प्रतिस्थापन इसे ठीक नहीं कर सका। धन्यवाद। – Ucodia

उत्तर

1

मेरे पिछले ऑटो-उत्तर के बाद, मुझे अंत में पता चला कि मेटाडेटा को रीफ्रेश होने से रोक रहा था।

जब मैंने मूल रूप से अपने डेटाबेस को संशोधित किया, तो मैंने वास्तव में एक और स्क्रिप्ट निष्पादित की जो तालिका पर DROP बना रहा था और फिर CREATE TABLE को स्क्रैच से तालिका को फिर से बनाने के लिए। वहां, एसएसआईएस कभी भी परिवर्तनों का पता लगाने में सक्षम नहीं था और मुझे अपने अन्य उत्तर में सभी चीजें करना पड़ा।

बाद में आज मुझे कुछ मामूली संशोधन करना पड़ा और इस बार मैंने ALTER TABLE का चयन किया। जादुई रूप से, इस बार एसएसआईएस ने सभी बदलावों का पता लगाया, यहां तक ​​कि उन्नत संपादक से कॉलम रीफ्रेश करने के लिए मुझे सूचित करते हुए, जो ठीक काम करता था।

तो मूल रूप से ये सभी मुद्दे डीबीए और इसके सर्वोत्तम प्रथाओं के बारे में मेरे खराब ज्ञान के कारण हुए हैं।

1

मुझे इसे ठीक करने का एक तरीका मिला लेकिन यह थोड़ा मुश्किल था।

यहां तक ​​कि सोचा था कि मैं अपने पैकेज से तालिका के किसी भी संदर्भ को पूरी तरह से हटा रहा था, मुझे हमेशा पुराना मेटाडाटा मिल रहा था।

मैं अभी भी एक स्पष्ट ठीक नहीं है, लेकिन यहाँ है क्या मैं इसे ठीक करने के लिए क्या किया:

  • निकाला गया
  • परियोजना फ़ोल्डर से obj नष्ट कर दिया गया और बिन फ़ोल्डर में चिंतित स्रोत और गंतव्य तालिकाओं के लिए किसी भी संदर्भ
  • सहेजी गयी, बंद कर दिया और उसके बाद परियोजना
  • खरोंच से बनाया गया नया डाटा प्रवाह और अद्यतन मेटाडाटा अंत में वहाँ
था फिर से खोल दी

पता नहीं है कि उन सूचनाओं को कैश किया गया था, लेकिन मुझे संदेह है कि ओबीजे फ़ोल्डर आपके पैकेज की कैश की गई प्रति रखता है या विजुअल स्टूडियो मेमोडाटा को स्मृति में रखता है जो इसे बंद करते समय मुक्त हो जाता है। वैसे भी, इन चरणों का पालन करने से इसे ठीक करना चाहिए।

+0

मुझे लगता है कि यदि आप गंतव्य घटक खोलते हैं और मैपिंग टैब पर जाते हैं, तो इसे नया मेटाडेटा लेना चाहिए। वह आमतौर पर मेरे लिए काम करता है। – rvphx

+0

यह पहली बात है जो मैंने किया लेकिन यह हमेशा मुझे पुराना मेटाडाटा दे रहा था। – Ucodia

16

Advanced Editor का उपयोग करने और नीचे दिए गए बाईं ओर Refresh बटन दबाकर क्या है?

+0

बेवकूफ सरल लेकिन मेरे लिए नौकरी की! – Fishcake

+0

@ फिशकेक - यह बेवकूफ सरल कुछ गैर-उन्नत (उदा।, सामान्य) संपादक पर होना चाहिए। मुझे नहीं पता कि माइक्रोसॉफ्ट ने क्यों सोचा था कि मेरी राय में (और मैं कई अन्य राय मानता हूं), एक उन्नत संपादक के पीछे मूलभूत कार्यक्षमता का एक गुच्छा छिपाना अच्छा विचार था। – KSwift87