Aracılığıyla paylaş


Tetikleyici (Transact-SQL) bırak

Bir veya daha fazla DML veya DDL tetikleyici geçerli veritabanından kaldırır.

Konu bağlantısı simgesiTransact-SQL sözdizimi kuralları

Sözdizimi

Trigger on an INSERT, UPDATE, or DELETE statement to a table or view (DML Trigger)
DROP TRIGGER [schema_name.]trigger_name [ ,...n ] [ ; ]

Trigger on a CREATE, ALTER, DROP, GRANT, DENY, REVOKE or UPDATE statement (DDL Trigger)
DROP TRIGGER trigger_name [ ,...n ] 
ON { DATABASE | ALL SERVER } 
[ ; ]

Trigger on a LOGON event (Logon Trigger)

DROP TRIGGER trigger_name [ ,...n ] 
ON ALL SERVER 

Bağımsız değişkenler

  • schema_name
    DML tetikleyici ait olduğu şema addır.DML Tetikleyicileri tablo ya da görünüm üzerinde oluşturuldukları şemasına belirlenmektedir.schema_nameDDL veya oturum açma tetikleyici belirtilemez.

  • trigger_name
    Kaldırmak için tetikleyici adıdır.Şu anda oluşturulan Tetikleyiciler listesini görmek için sys.server_assembly_modules veya sys.server_triggers.

  • VERİTABANI
    DDL tetikleyici kapsam geçerli veritabanına uygulanan gösterir.VERİTABANI olmalıdır tetikleyici oluşturulduğu veya değiştirildiği zaman onu da belirtildi, belirtilen.

  • TÜM SUNUCU
    DDL tetikleyici kapsam geçerli sunucuya uygulanan gösterir.TÜM sunucu olmalıdır tetikleyici oluşturulduğu veya değiştirildiği zaman onu da belirtildi, belirtilen.TÜM sunucu oturum açma Tetikleyiciler için de geçerlidir.

Açıklamalar

DML tetikleyici onu bırakarak veya tetikleyici tablobırakarak kaldırabilirsiniz.Bir tablo kesildiği zaman tüm ilişkilendirilmiş tetikleyiciler de bırakılır.

Tetikleyici kesildiği zaman tetikleyici hakkında bilgileri kaldırılır sys.objects, trigger ve sql_dependencies katalog görünümleri.

Yalnızca tüm tetikleyiciler kullanarak üzerinde yan tümceleri özdeş oluşturulan, birden fazla DDL Tetikleyiciler tetikleyici drop deyim bırakılabilir.

Tetikleyiciyi yeniden adlandırma için tetikleyici bırakın ve create TRIGGER kullanın.Tetikleyici tanımını değiştirmek için alter tetikleyici kullanın.

Belirli bir tetikleyici bağımlılıkları belirleme hakkında daha fazla bilgi için bkz: sys.sql_expression_dependencies, sys.dm_SQL_referenced_entities (Transact-SQL), ve sys.dm_SQL_referencing_entities (Transact-SQL).

Tetikleyici metnini görüntüleme hakkında daha fazla bilgi için bkz: sp_helptext (Transact-SQL) ve SQL_dependencies (Transact-SQL).

Varolan Tetikleyiciler listesini görüntüleme hakkında daha fazla bilgi için trigger (Transact-SQL) ve sys.server_triggers (Transact-SQL).

İzinler

Bir DML bırakmak için tablo veya Görünüm tetikleyici tanımlanmış alter izninin tetikleyici gerektirir.

DDL bırakmak için sunucu kapsam (on tüm sunucu) veya oturum açma tetikleyici tanımlanmış tetikleyici Server control server izni gerektirir.DDL bırak için alter any database DDL tetikleyici izni geçerli veritabanında veritabanı kapsam (on database) tanımlanmış tetikleyici gerektirir.

Örnekler

A.DML tetikleyici siliniyor

Aşağıdaki örnek düşünceye employee_insupd Tetikleyici.

USE AdventureWorks2008R2;
GO
IF OBJECT_ID ('employee_insupd', 'TR') IS NOT NULL
   DROP TRIGGER employee_insupd;
GO

B.DDL tetikleyici siliniyor

Aşağıdaki örnek düşünceye DDL tetikleyici safety.

Önemli notÖnemli

DDL tetikleyici şema kapsamlı değildir ve bu nedenle görünmez çünkü sys.objects Katalog görünümü, veritabanında kayıtlı olup olmadığını sorgulamak için OBJECT_ID işlev kullanılamaz.Uygun katalog görünümü kullanarak değil şema kapsamlı nesneleri sorgulanmasını gerekir.DDL Tetikleyiciler için kullanmak trigger.

USE AdventureWorks2008R2;
GO
IF EXISTS (SELECT * FROM sys.triggers
    WHERE parent_class = 0 AND name = 'safety')
DROP TRIGGER safety
ON DATABASE;
GO