SQL सर्वर लेनदेन प्रतिकृति DML को अनदेखा करती है जो डेटा को परिवर्तित नहीं करती है


4

मेरे पास दो सर्वरों के बीच एक प्रतिकृति प्रतिकृति सेटअप है और मैंने देखा है कि अगर कोई रन इसी तरह एक बयान:

UPDATE mytableSET mycolumn = mycolumn

प्रतिकृति किसी भी तरह इस लेनदेन को अनदेखा करना जानती है और यह ग्राहक पर लागू नहीं होता है।मैंने SQL Profiler चलाकर और अपनी ग्राहक तालिका में TIMESTAMP स्तंभ जोड़कर (यह परिवर्तित नहीं होता है) इसकी पुष्टि की है।मुझे संदेह है कि किसी प्रकार का तंत्र है, जो इस तरह के "स्मार्ट" व्यवहार को सक्षम बनाता है और मैं सोच रहा था कि क्या कोई इस पर कुछ प्रकाश डाल सकता है।

धन्यवाद!

6

ट्रान्सैक्शनल रीप्लेसमेंट works by reading the transaction log

इस तरह का "नॉन अपडेटिंग अपडेट" अक्सर कोई लेन-देन लॉग रिकॉर्ड उत्पन्न नहीं करेगा।

इसके बारे में अधिक जानने के लिए पॉल व्हाइट का लेख The Impact of Non-Updating Updates देखें।

  0

यह मेरे द्वारा देखे गए व्यवहार की व्याख्या करता है।आपका बहुत बहुत धन्यवाद! 24 jan. 142014-01-24 18:05:55