SQL Server bir tablo için değişiklikleri kontrol ediyorum.
Nasıl tetikler kullanarak veya herhangi bir şekilde veritabanı yapısı değiştirmeden bir tablo için değişiklikleri için SQL Server bir veritabanı izleyebilir miyim? Tercih benim programlama ortamı .NET ve C#.
* SP4 *7 veya daha yeni herhangi bir destek olmak istiyorum. Benim uygulama başka bir şirketin ürün için cıvata-veri görselleştirilmesi. Müşteri tabanımızı binlerce, biz her yükleme sırasında üçüncü taraf satıcı tabloyu değiştirmek gereksinimleri koymak istemiyorum.
Tarafından< . em ^"bir tablo için değişiklikleri"Tablo veri sayfası tablo yapısında değişiklik değil yani.
Sonuçta, değişim aralığı değişim için onay yerine benim uygulamada bir olayı tetiklemek için istiyorum.
Eylem benim gereksinimleri (hayır tetikler veya şema değiştirme, SQL Server 2000 ve 2005) verilen en iyi kursu T-SQL BINARY_CHECKSUM işlevi kullanmak gibi görünüyor. Uygulamak için plan yoludur bu
Her X saniye aşağıdaki sorguyu çalıştırın:
SELECT CHECKSUM_AGG(BINARY_CHECKSUM(*)) FROM sample_table WITH (NOLOCK);
ve saklı değer karşı karşılaştırın. Eğer değeri değişirse, satır tablo satırı üzerinden sorgu kullanarak git
select row_id,BINARY_CHECKSUM(*) from sample_table WITH (NOLOCK);
ve saklı değerlere karşı döndü sağlaması karşılaştırın.
CEVAP
SAĞLAMA komut bir göz atın:
SELECT CHECKSUM_AGG(BINARY_CHECKSUM(*)) FROM sample_table WITH (NOLOCK);
Bu içeriği değişmedi bu tablo her zaman olduğu gibi uzun dönemde de aynı sayıda döner. Daha fazla bilgi için: bu benim yazı bakın
Bu tablo değişti önbellek bağımlılıkları yeniden inşa etmek için kullanılır:
ASP.NET 1.1 database cache dependency (without triggers)
Nasıl Server tablo sütun olup olmadığı...
Nasıl kullanıcı-tanımlamak SQL Server ...
Otomatik oluşturmak SQL Server tablo i...
Nasıl belirli bir tablo için MySQL mot...
Nasıl bir veritabanı SQL Server içinde...