Bu aracın Dml'den tek farkı tablo/view üzerinde ekleme, silme ve güncelleme işlemlerini tetiklemezler. Gelin hızlıca bunlara bakalım.
Bu aracın Dml'den tek farkı tablo/view üzerinde ekleme, silme ve güncelleme işlemlerini tetiklemezler. Gelin hızlıca bunlara bakalım.
DML tetikleyicilerine benzerler. Tek farkı tablo/view üzerinde ekleme, silme ve güncelleme işlemlerini tetiklemezler. Bunun yerine DDL komutları olan create, alter ve drop işlemlerini tetikler. DDL tetikleyicilerinde instead of tetikleyicisi kullanılmaz.
Aşağıdaki örnekte veritabanında herhangi bir tablonun silinmesi veya düzenlenmesi engelleniyor.
CREATE TRIGGER droplama
ON database --All Server da yazılabilir. All Server ifadesi server daki tüm veritabanlarında etkili olsun anlamındadır.
FOR DROP_TABLE, ALTER_TABLE
AS
PRINT 'engellendi'
ROLLBACK --yapılacak işlemi iptal et
drop table yazar ile yazar tablosunu silmeye çalıştığınızda engellendi yazısıyla karşılaşırsınız.
on database kısmında database yerine veritabanının ismi yazılmaz. DDL tetikleyiciler üzerinde bulunulan veritabanı üzerinde çalışılır. Bu yüzden sadece database (ya da All Server) yazılır.
CREATE TRIGGER oluşturmasın
ON database --All Server da yazılabilir. All Server ifadesi server daki tüm veritabanlarında etkili olsun anlamındadır.
FOR CREATE_TABLE
AS
PRINT 'TABLO OLUŞTURAMAZSINIZ'
ROLLBACK --yapılacak işlemi iptal et