ddl Tetikleyicileri anlama

Yanıt olarak saklı yordamlar gibi normal Tetikleyiciler ddl Tetikleyiciler ateşlenmesine bir olay.Ancak, dml tetikleyiciler, Güncelleştir, Ekle veya delete deyimlerini tablo ya da görünüm üzerinde yanıt tetiklendikleri değil.Bunun yerine, çeşitli veri tanımlama dili (ddl) olaylara yanıt tetiklendikleri.Bu olaylar öncelikle karşılık Transact-SQL ifadeleri başlatılan sözcüklerle create, alter ve AÞAÐÝ.ddl benzeri işlemleri belirli sistem saklı yordamları ddl Tetikleyicileri de tetikleyebilir.

Önemli notÖnemli

Sizin ddl Tetikleyiciler sistem saklı yordamları çalıştırma verdikleri yanıtlar belirlemek için sınayın.Örneğin, create type deyim ve sp_addtype saklı yordam hem de ateşlenmesine DDL tetikleyicisi bir create_type üzerinde oluşturulan olay..

ddl Tetikleyicileri, Denetim ve veritabanı işlemleri erişilebileceğini gibi yönetimsel görevler için kullanılabilir.

Aşağıdakileri yapmak istediğinizde ddl Tetikleyiciler kullanın:

  • Sizin veritabanı şeması için belirli değişiklikleri engellemek istiyor.

  • İstediğiniz yanıt sizin veritabanı şeması değişikliği olarak veritabanında gerçekleşmesi için bir şey.

  • Değişiklik ya da olayları kaydetmek istediğiniz veritabanı şeması.

ddl Tetikleyiciler ddl ifadelerden hemen sonra yalnızca onları çalıştırmak, tetikleyici harekete.ddl Tetikleyiciler INSTEAD OF tetikleyiciler olarak kullanılamaz.

Aşağıdaki örnek DDL tetikleyicisi değiştirilmiş veya bırakılan bir veritabanındaki herhangi tablo önlemek 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 Tetikleyiciler yanıt olarak ateşlenmesine bir Transact-SQL olay, işlenir geçerli veritabanında veya geçerli bir sunucu.kapsam Tetikleyici olay üzerinde bağlıdır.DDL tetikleyicisi kapsam hakkında daha fazla bilgi için bkz: ddl Tetikleyicileri tasarlama.

Kullanılabilir DDL tetikleyicisi örnek edinmek için AdventureWorks2008R2 örnek veritabanı, nesne Explorer'da SQL Server Management Studio, programlama klasöründe bulunan veritabanı Tetikleyiciler klasörü açın AdventureWorks2008R2 veritabanı.Sağ ddlDatabaseTriggerLog ve Komut dosyası veritabanı tetikleyici olarak.Varsayılan olarak, DDL tetikleyicisi ddlDatabaseTriggerLog devre dışı bırakılır.