TETIKLEYICI (Transact-sql) etkinleştir
Bir dml, ddl ya da logon tetikleyici sağlar.
Transact-SQL Sözdizim Kuralları
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 ya da logon tetikleyici belirtilemez.trigger_name
Etkin olması için tetikleyici adıdır.ALL
on yan tümcesi kapsamında tanımlanan tüm tetikleyiciler etkin olduğunu gösterir.object_name
Tablo veya görünüm üzerinde dml tetikleyici adı trigger_nameyürütülecek oluşturuldu.DATABASE
ddl tetikleyici için gösteren trigger_nameoluşturulduğu veya veritabanı kapsam ile yürütülecek güncellenmiştir.ALL SERVER
ddl tetikleyici için gösteren trigger_nameoluşturulduğu veya sunucu kapsamı ile yürütülecek güncellenmiştir. TÜM sunucu, oturum açma Tetikleyiciler için de geçerlidir.[!NOT]
Bu seçenek içerilen bir veritabanında kullanılamaz.
Açıklamalar
Bir tetikleyici etkinleştirme onu yeniden değil. Engelli tetikleyici hala geçerli veritabanında bir nesne olarak var, ancak değil ateş. Bir tetikleyici etkinleştirme herhangi bir zaman ateşlenmesine neden Transact-SQLdeyimleri üzerinde bu aslında programlanmış idam. Tetikleyiciler kullanarak devre dışı Tetikleyici devre dışı. dml Tetikleyicileri tablo üzerinde tanımlı olabilir de kullanarak etkin veya devre dışı alter table.
İzinler
En azından, bir dml tetikleyici etkinleştirmek için kullanıcı tablo veya Görünüm tetikleyici oluşturulduğu alter izni olması gerekir.
Sunucu kapsamlı (on all server) ddl tetikleyici ya da logon tetikleyici etkinleştirmek için bir kullanıcı sunucu üzerinde control server izni olmalıdır. Veritabanı kapsamlı (on database), en azından bir ddl tetikleyici etkinleştirmek için kullanıcı geçerli veritabanındaki alter any database ddl tetikleyici izni olmalıdır.
Örnekler
A.Bir tablodaki dml tetikleyici etkinleştirme
Aşağıdaki örnek Tetikleyici devre dışı uAddressBu tabloyu oluşturulduğu Addressve bunu sağlayan
USE AdventureWorks2012;
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, ddl tetikleyici oluşturur safety, veritabanı kapsamlı ve bunu 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ı kapsam ile tanımlanan tüm tetikleyiciler etkinleştirme
Aşağıdaki örnek, sunucu kapsamında oluşturulan tüm ddl Tetikleyiciler etkinleştirir.
USE AdventureWorks2012;
GO
ENABLE Trigger ALL ON ALL SERVER;
GO
Ayrıca bkz.
Başvuru
DISABLE TETIKLEYICI (Transact-sql)
alter TETIKLEYICI (Transact-sql)