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