DDL Tetikleyicileri anlama
DDL Tetikleyicileri, normal bir tetikleyici gibi bir olaya yanıt olarak saklı yordamlar ateşlenmesine.Ancak, DML Tetikleyicileri farklı olarak, bunlar UPDATE, INSERT veya bir tablo veya Görünüm deyimlerini DELETE yanıtındaki ateşlenmesine değil.Bunun yerine, yanıt olarak, çeşitli veri tanımlama dili (DDL) olaylarını harekete.Bu olaylar öncelikle karşılık Transact-SQL CREATE, DROP ve ALTER anahtar sözcükler'ile başlayan deyimleri. DDL ve benzeri işlemleri belirli sistem saklı yordamları da DDL Tetikleyicileri harekete.
Important Note: |
---|
Çalışan Sistem saklı yordamlara yanıtlarını belirlemek için DDL Tetikleyicileri sınayın.Örneğin, CREATE TYPE deyim ve sp_addtype depolanmış yordamın her ikisi de bir CREATE_TYPE üzerinde oluşturulan DDL tetikleyicisi harekete olay.. |
DDL Tetikleyicileri, Denetim ve veritabanı işlemleri düzenleme gibi yönetimsel görevleri için kullanılabilir.
Aşağıdakileri yapmak istediğinizde, DDL tetikleyicilerini kullanın:
Bazı değişiklikleri önlemek istiyorsanız, veritabanı şeması.
Yanıt olarak bir veritabanında gerçekleşmesini istediğiniz şekilde veritabanı şeması.
Değişiklikleri veya olayları veritabanı şemada kaydetmek istediğiniz.
DDL Tetikleyicileri yalnızca DDL ifadelerden sonra bunları çalıştırabilir, tetikleyici harekete.DDL Tetikleyicileri ıNSTEAD OF tetikleri gibi kullanılamaz.
Aşağıdaki örnek, DDL tetikleyicisi herhangi bir tabloyu veritabanında değiştirilen veya atılan gelen engellemek için nasıl kullanılabileceğini gösterir.
CREATE TRIGGER safety
ON DATABASE
FOR DROP_TABLE, ALTER_TABLE
AS
PRINT 'You must disable Trigger "safety" to drop or alter tables!'
ROLLBACK ;
DDL Tetikleyicileri yanıt olarak baþlatmak bir Transact-SQL geçerli veritabanındaki veya sunucudaki geçerli işlenen olay. Tetikleyici kapsamını olayı bağlıdır.DDL tetikleyicisi kapsam hakkında daha fazla bilgi için bkz: Tasarlama DDL Tetikleyicileri.
Kullanılabilir bir DDL tetikleyicisi örneği elde etmek için AdventureWorks Örnek veritabanı, Object Explorer'ın SQL Server Management Studio, paylaşılan klasöründe bulunan veritabanı Tetikleyicileri klasörü açýn AdventureWorks Veritabanı. Sağ tıklatma ddlDatabaseTriggerLog ve seçme Komut dosyası veritabanı harekete geçirici olarak.Varsayılan olarak, DDL tetikleyicisi ddlDatabaseTriggerLog devre dışı bırakılır.