TETIKLEYICI (Transact-sql) etkinleştir

Bir dml, ddl ya da logon tetikleyici sağlar.

Konu bağlantısı simgesi 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)

CREATE TRIGGER (Transact-SQL)

drop TETIKLEYICI (Transact-sql)

sys.triggers (Transact-sql)