Database - Veritabanı
SQL'de Insert Update Sonrası Değişen Sütunları Nasıl Belirleriz.
SQL'de Insert Update Sonrası Değişen Sütunları Nasıl Belirleriz.
-
Bunun varlığını bilmediğim için soruyorum.
Mesela bir tane ana tablomuz var diyelim.
tblFirmalar
firma_id, firma_adi, tc_no, vergi_no, telefon, adres, faks,.... şeklinde sütunlara sahip olsun.
Bir de bu ana tabloya ait her insert/update/delete gibi kayıtlarının saklandığı log tablosu var diyelim.
tblFirmalar_Log
id, firma_id, firma_adi, tc_no, vergi_no, telefon, adres, faks,.... şeklinde sütünlara sahip olsun
tblFirmalar tablosuna "Serkan LTD. ŞTİ", "0505 505 55 55", "Çankaya/ANKARA" bir firma ekledim. Tabi bunu trigger sayesinde tblFirmalar_Log tablosuna da ekledim diyelim.
Fakat sonra firma adını yanlış yaptığımı farkettim. "Serkan A.Ş." olarak sadece firma_adi sütununda değişiklik yaptığımı varsayalım. Haliyle tblFirmalar_Log tablosuna bu kaydın firma_adi, telefon, adres vs.. gibi bütün değerleri tekrar eklenecek.
Burada istediğim şey ise şu, Sadece firma_adi sütunu değiştiği için değişen alanları listeleyen vs.. bir trigger sözkonusu mu?
-
Mümkün hocam.
Sql Server trigger column diye aratabilirsin.
Triggerın içine SQL server destekli update fonksiyonu mevcut
if update (sütunadi) şeklinde bir koşul koyarak sağlandığında firmalar_log tablona ilgili inserti gerçekleştirebilirsin.
Sorunu doğru anladıysam 😊