Tetikleyici (Transact-SQL) ETKİNLEŞTİR
Bir DML, DDLveya oturum açma tetikleyici sağlar.
Sözdizimi
ENABLE TRIGGER { [ schema_name . ] trigger_name [ ,...n ] | ALL }
ON { object_name | DATABASE | ALL SERVER } [ ; ]
Bağımsız değişkenler
schema_name
Tetikleyici ait olduğu şema addır.schema_nameDDL veya oturum açma tetikleyici belirtilemez.trigger_name
Etkin olması için tetikleyici adıdır.ALL
kapsam on yan tümce tanımlanan tüm tetikleyiciler etkin olduğunu gösterir.object_name
tablo ya da görünüm üzerinde DML Tetikleyici adı trigger_name yürütmekoluşturuldu.VERİTABANI
DDL tetikleyici için gösterir trigger_name oluşturulmuş veya değiştirilmiş veritabanı kapsam yürütmek için.TÜM SUNUCU
DDL tetikleyici için gösterir trigger_name oluşturulmuş veya değiştirilmiş yürütmek sunucu kapsamiçin.TÜM sunucu oturum açma Tetikleyiciler için de geçerlidir.
Açıklamalar
Tetikleyici etkinleştirme, yeniden oluşturmaz.Devre dışı bırakılan tetikleyici hala geçerli veritabanında bir nesne olarak var, ancak yangın değil.Tetikleyici etkinleştirme herhangi, yangın ona neden Transact-SQL ifadeleri üzerinde onu ilk olarak programlanmış yürütülen.Tetiklemeler devre dışıyken kullanarak Tetikleyici devre dışı.DML Tetikleyicileri tablo üzerinde tanımlı olabilir de devre dışı veya etkin kullanarak alter table.
İzinler
En azından, DML tetikleyici etkinleştirmek için kullanıcı tablo veya Görünüm tetikleyici oluşturulduğu alter izninizin olması gerekir.
DDL tetikleyici server kapsam (on tüm sunucu) veya oturum açma tetikleyici etkinleştirmek için bir kullanıcı sunucu üzerinde control server izni olmalıdır.Veritabanı kapsam (on database), en azından bir DDL tetikleyici etkinleştirmek için kullanıcı, geçerli veritabanındaki alter any database DDL tetikleyici izninizin olması gerekir.
Örnekler
A.Bir tablo DML tetikleyici etkinleştirme
Aşağıdaki örnek Tetikleyici devre dışı bırakır uAddress tabloüzerinde oluşturulmuş Address, it. sağlar ve
USE AdventureWorks2008R2;
GO
DISABLE TRIGGER Person.uAddress ON Person.Address;
GO
ENABLE Trigger Person.uAddress ON Person.Address;
GO
B.DDL tetikleyici etkinleştirme
Aşağıdaki örnek, bir DDL tetikleyici oluşturur safety ile kapsam, veritabanı ve sonra da it. devre dışı bırakır
IF EXISTS (SELECT * FROM sys.triggers
WHERE parent_class = 0 AND name = 'safety')
DROP TRIGGER safety ON DATABASE;
GO
CREATE TRIGGER safety
ON DATABASE
FOR DROP_TABLE, ALTER_TABLE
AS
PRINT 'You must disable Trigger "safety" to drop or alter tables!'
ROLLBACK;
GO
DISABLE TRIGGER safety ON DATABASE;
GO
ENABLE TRIGGER safety ON DATABASE;
GO
C.Aynı kapsamile tanımlanan tüm tetikleyiciler etkinleştirme
Aşağıdaki örnek, sunucu kapsamoluşturulan tüm DDL Tetikleyiciler etkinleştirir.
USE AdventureWorks2008R2;
GO
ENABLE Trigger ALL ON ALL SERVER;
GO