] यह जानकारी डेटा प्रतिकृति उद्देश्यों के लिए महत्वपूर्ण है।
दृष्टिकोण
हालाँकि, यह दृष्टिकोण थकाऊ हो सकता है यदि तालिका में बड़ी संख्या में कॉलम हैं।
इन दो तालिकाओं में शामिल होने से, किसी भी पंक्तियों की पहचान करना संभव है, जहां फ़ील्डवैल्यू बदल गया है, हमें संशोधित मान देता है।
शुरू
Nocount पर सेट करें;
- अनपिवॉट डिलीट कर दिया
के रूप में deleted_unpvt के साथ (
ContactID, FieldName, FieldValue का चयन करें
से (ContactId, Forname, Surname, Extn, Email, Deleted से उम्र का चयन करें) P
Unpivot (FieldName के लिए FieldName (forname, surname, extn, email, eage)) के रूप में हटा दिया गया।
),
- unpivot डाला गया
Inserted_unpvt के रूप में (
ContactID, FieldName, FieldValue का चयन करें
से (SELECTID, FORNAME, SURNAME, EXTN, EMAIL, INSERTED से आयु का चयन करें) P
Unpivot (FieldName के लिए FieldName (forname, surname, extn, ईमेल, आयु)) के रूप में सम्मिलित_यूएनपीवीटी के रूप में
)
- उन्हें शामिल करें और परिवर्तनों की पहचान करें
Sample_table_changes में डालें (ContactID, FieldName, FieldValuewas, FieldValueis)
Colesce (d.contactid, i.contactid) Contatiod का चयन करें,
Colesce (D.FieldName, I.FieldName) FieldName,
डी। फील्डवैल्यू के रूप में फील्डवैल्यू,
I.FieldValue फील्डवैलिस के रूप में
Deleted_unpvt d से
पूर्ण बाहरी जुड़ाव INSERTED_UNPVT I
पर d.contactid = i.contactid और d.fieldname = i.fieldname
जहां D.fieldvalue I.FieldValue
या।
या (D.fieldvalue शून्य है और I.FieldValue शून्य नहीं है);
- प्रतिकृति के लिए sample_table_changes की सामग्री का उपयोग करें
अंत
GO
यह गैर-नियुक्त दृष्टिकोण जटिल गतिशील SQL का उपयोग किए बिना या बिटफ़ील्ड अंकगणितीय ओवरफ्लो मुद्दों का सामना किए बिना प्रभावी ढंग से परिवर्तन, विलोपन और सम्मिलन को संभालता है। यह प्राकृतिक प्राथमिक कुंजी में परिवर्तन से भी प्रभावित नहीं होता है जब तक कि एक अतिरिक्त GUID कॉलम का उपयोग पहचान के लिए किया जाता है।