Aracılığıyla paylaş


Tetikleyici (Transact-SQL) ETKİNLEŞTİR

Bir DML, DDLveya oturum açma tetikleyici sağlar.

Konu bağlantısı simgesiTransact-SQL sözdizimi 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 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