ट्रिगर्स का उपयोग किए बिना किसी डेटाबेस में किसी भी तरह से बदलाव के लिए किसी तालिका में परिवर्तन के लिए SQL सर्वर डेटाबेस की निगरानी कैसे कर सकता हूं या किसी भी तरह से डेटाबेस की संरचना को संशोधित कर सकता हूं? मेरा पसंदीदा प्रोग्रामिंग वातावरण .NET और C# है।
मैं किसी भी SQL Server 2000 SP4 या नए का समर्थन करने में सक्षम होना चाहता हूं। मेरा आवेदन किसी अन्य कंपनी के उत्पाद के लिए एक बोल्ट-ऑन डेटा विज़ुअलाइज़ेशन है। हमारा ग्राहक आधार हजारों में है, इसलिए मैं आवश्यकताओं को पूरा नहीं करना चाहता हूं कि हम प्रत्येक इंस्टॉलेशन में तृतीय-पक्ष विक्रेता की तालिका को संशोधित करें।
"किसी तालिका में परिवर्तन" मेरा मतलब है तालिका डेटा में परिवर्तन, तालिका संरचना में परिवर्तन नहीं।
आखिरकार, मैं अंतराल पर परिवर्तनों की जांच करने के बजाय, मेरे आवेदन में एक ईवेंट ट्रिगर करने के लिए परिवर्तन करना चाहता हूं।
मेरी आवश्यकताओं को पूरा करने के लिए कार्रवाई का सबसे अच्छा तरीका (कोई ट्रिगर्स या स्कीमा संशोधन, एसक्यूएल सर्वर 2000 और 2005) टी-एसक्यूएल । जिस तरह से मैं कार्यान्वित करने की योजना बना रहा हूं वह यह है:
प्रत्येक एक्स सेकंड निम्न क्वेरी चलाता है:
SELECT CHECKSUM_AGG(BINARY_CHECKSUM(*))
FROM sample_table
WITH (NOLOCK);
और संग्रहित मूल्य के खिलाफ इसकी तुलना करें। यदि मान बदल गया है, तो क्वेरी का उपयोग करके पंक्ति पंक्ति के माध्यम से पंक्ति पंक्ति के माध्यम से जाएं:
SELECT row_id, BINARY_CHECKSUM(*)
FROM sample_table
WITH (NOLOCK);
और संग्रहीत मूल्यों के विरुद्ध लौटाए गए चेकसम की तुलना करें।