Forum
Merhaba,
Yapmakta olduğum bir veritabanın da çok fazla miktarda trigger kullanmam gerekiyor. Ve büyük çoğunluğu sadece bir sütundaki işlem ile bağlantılı. SQL'e internet üstünden bağlandığım için gereksiz işlemlerden kaçınıp daha hızlı çalışmasını istiyorum. Bu sebeple sadece bir sütundaki değişikler için trigger tanımlamam mümkün mü ?
Biraz araştırdım ama pek bir kaynağa ulaşamadım. Konu hakkında bilgi verebilirseniz çok memnun olurum.
sadece bir sütundaki değişikler için trigger tanımlamam mümkün mü ?
Bu soruyu biraz daha açabilir misiniz ? Ne yapmak istediğiniz tam olarak anlaşılmıyor.
id, isim, soyisim, telefon ve adresi bulunduran bir tablom olduğunu varsayalım
(create trigger "isim" on "tablo adı" after update)
olarak tanımladığım zaman tabloya gelen herhangi bir update komutunda trigger çalışıyor. Ama benim istediğim sadece telefon numaralarının bulunduğu sütunda bir değişiklik olduğu zaman triggerın çalışması. Çünkü kendi tablomda nerdeyse bütün sütunlar sürekli olarak değişiyor. Her değişimde bütün tabloyu tarayıp ona göre işlem yapmak fazla iş yoğunluğu oluşturacağından dolayı bunu kullanmak istemiyorum. Uzak bir bilgisayarla bağlantı halinde kalacak bir veritabanı olduğu için hız çok önemli oluyor. Bunun herhangi bir çözümü var mı bilmiyorum. Çözümü veya herhangi bir alternatifi varsa beni bilgilendirirseniz çok teşekkür ederim.
Merhaba,
Bu şekilde yapabilirsin. Burada customers tablosunda sadece PHONE alanı değişince update işlemi çalışıyor.
CREATE TRIGGER TRG1 ON CUSTOMERS
AFTER UPDATE
AS
BEGIN
if update (PHONE)
INSERT INTO CUSTOMERS_LOG SELECT *,GETDATE() FROM DELETED
END