sql server 2008 - How can I merge two tables without a primary key (or how to have the leftovers from a merge get deleted)? -
कहो मेरे पास ये दो टेबल हैं:
टेबल ए टेबल बी _______________________ _______________________ आईडी | विवरण आईडी | विवरण ----------------------- ----------------------- 1 कुछ वैल 1 | कुछ वैल 2 | अधिक डेटा 2 | अधिक डेटा 2 | और भी 2 | कम अधिक 2 है | और फिर 3 | यह बदल गया 3 | अन्य मूल्य 4 ये यादृच्छिक हैं 3 | लेकिन यह नहीं ------------------------ 4 | ये यादृच्छिक हैं -----------------------मैं तालिका बी के परिवर्तनों की तालिका A में एक मर्ज कैसे कर सकता हूं और इसे प्राप्त कर सकता हूं: <पूर्व> टेबल ए _______________________ आईडी | विवरण ----------------------- 1 कुछ वैल 2 | अधिक डेटा 2 | कम अधिक 3 है | यह बदल गया 4 | ये यादृच्छिक हैं -----------------------
जब मैं ऐसा कुछ करने की कोशिश करता हूं:
तालिका (एडी, विवरण) पर स्रोत (आईडी, विवरण) पर (target.id = source.Id) का प्रयोग करते हुए टेबलएज के रूप में मर्ज करें, फिर मिलान करें आईडी = source.Id, विवरण = स्रोत। सम्मिलित करें (आईडी, विवरण) मान (source.Id, source.Description);
मुझे यह त्रुटि मिलती है:
मिर्ज कथन का अद्यतन करने का प्रयास किया गया है या एक ही बार से अधिक समान पंक्ति हटाएं। ऐसा तब होता है जब एक लक्ष्य पंक्ति एक से अधिक स्रोत पंक्ति से मेल खाती है एक मर्ज स्टेटमेंट लक्ष्य तालिका की एक ही पंक्ति को कई बार नवीनीकृत / हटा नहीं सकता। अधिकतम एक स्रोत पंक्ति में एक लक्ष्य पंक्ति मिलान सुनिश्चित करने के लिए, या धारा पंक्ति का समूह बनाने के लिए GROUP BY खंड का उपयोग करने पर ओ खंड पर परिष्कृत करें।
यही कारण है कि आईडी अद्वितीय नहीं है मैं विवरण जोड़ सकते हैं, लेकिन तब यह कभी भी अपडेट नहीं होगा। इसका अर्थ है कि परिवर्तनों में अनाथ पंक्तियां होंगी।
मुझे जो कुछ चाहिए, वह कहने का एक तरीका है: जो मैच करता है, वह जो सम्मिलित है और जो बाकी है उसे डालें।
मैं यह कैसे कर सकता हूं भाग हटाना?
नोट: मुझे एहसास हुआ कि टेबल ए सचमुच सिर्फ टेबल बी के सभी मूल्यों को ले रहा है। लेकिन मैं अभी भी विलय करना चाहता हूं क्योंकि व्यवहार में बहुत कम बदलाव होगा इन तालिकाओं के बीच एक पूर्ण कटौती और पुनः सम्मिलित करें ओवरकिल है।
को थोड़ी देर तक खोजना चाहिए स्रोत (आईडी, विवरण) पर (लक्ष्य) के रूप में
सॉफ़्टवेयर पर मिलान नहीं किया गया है विकल्प:
लक्ष्य के रूप में टेबल एवल को मर्ज करें (आईडी चुनें, टैबलेट से विवरण)। आईडी = source.Id) जब स्रोत से मिलान नहीं किया जाता है, तो उसमें शामिल नहीं किया जाता है, तो सम्मिलित करें (आईडी, विवरण) मान (source.Id, source.Description);
Comments
Post a Comment