Bir tablonun sırayla çalışan bir dizi işlemden etkilenip etkilenmediğini ve her çalışmadan önce ve sonra tablonun durumunun ne olduğunu bilmesi gerekip gerekmediğini anlamaya çalışıyorum. Yapmaya çalıştığım şey, tüm işlemlerden önce db tablosundaki her tablonun bir sağlama toplamını bir tabloya kaydeden ve sonra her bir bittiğinde ve tablo sırasını bir sağlama toplamıyla güncelleştirdiğinde yeniden çalıştıran bir SQL çalışmasıdır. Tüm işlemler bittikten sonra, checksum'ları karşılaştırıyorum ve tüm satırları <> 'dan daha önce buluyorum.Veritabanındaki tüm tabloların sağlama toplamı olan tablo oluşturulsun mu?
Tek sorun, SQL için en iyi adam olmadığım ve biraz kaybolacağım.
select checksum_agg(binary_checksum(*)) from empcomp with (nolock)
create table Test_CheckSum_Record (TableName varchar(max), CheckSum_Before int, CheckSum_After int)
SELECT name into #TempNames
FROM sys.Tables where is_ms_shipped = 0
Ve yapmak istediğim için yalancı kod
foreach(var name in #TempNames)
insert into Test_CheckSum_Record(name, ExecuteSQL N'select checksum_agg(binary_checksum(*)) from ' + name + ' with (nolock)', null)
Ama nasıl kimse bu işe yarar gibi bir şey: Ben şu anda yaşıyorum İşte burada?
Sadece CRUD işlemleri üzerinde değişiklikler mi arıyorsunuz, yoksa tablo yapısı/kısıtlamaları da değiştiğinde toplamı yeniden hesaplamak ister misiniz? – SCFi
Sadece CRUD işlemleri. Şema hiç değişmemeli. Etkili bir şekilde, sadece herhangi bir tablonun verilerinin değişip değişmediğini ve eğer öyleyse tabloyu bilmem gerek. – Duckies
Denetlemek istediğiniz tüm tabloların bir IDENTITY sütunu var mı? Aksi takdirde, bu uygulanabilir bir yaklaşım olmayabilir. –