DISABLE TETIKLEYICI (Transact-sql)

Tetikleyici devre dışı bırakır.

Konu bağlantısı simgesi Transact-SQL Sözdizim Kuralları

Sözdizimi

DISABLE 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
    Tetikleyici devre dışı adıdır.

  • ALL
    on yan tümcesi kapsamında tanımlanan tüm Tetikleyiciler devre dışı bırakıldığını gösterir.

    Dikkat notuDikkat

    SQL ServerBirleştirme çoğaltma için yayımlanan veritabanı Tetikleyiciler oluşturur. TÜM yayımlanmış veritabanları belirterek hangi çoğaltma bozan bu Tetikleyiciler devre dışı bırakır. Veritabanı birleştirme çoğaltması tüm belirterek önce yayımlanmaz doğrulayın.

  • 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_name oluş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

Tetikleyiciler oluşturulduğunda varsayılan olarak etkinleştirilir. Tetikleyici devre dışı bırak onu değil. Tetikleyici hala geçerli veritabanında bir nesne olarak bulunmaktadır. Ancak tetiği herhangi bir yangın değil Transact-SQLdeyimleri üzerinde programlanmış idam. Tetikleyiciler-etkinleştirilebilir kullanarak Tetikleyici etkinleştirmek. dml Tetikleyicileri tablo üzerinde tanımlı olabilir de kullanarak etkin veya devre dışı alter table.

İzinler

En azından, bir dml tetikleyici devre dışı bırakmak için kullanıcı tablo veya Görünüm tetikleyici oluşturulduğu alter izni olması gerekir.

Sunucu kapsamı (on all server) ile ddl tetikleyici ya da logon Tetikleyici devre dışı bırakmak için bir kullanıcının sunucuda control server izni olmalıdır. Veritabanı kapsamlı (on database), en azından bir ddl Tetikleyici devre dışı bırakmak için kullanıcı geçerli veritabanındaki alter any database ddl tetikleyici izni olmalıdır.

Örnekler

A.Bir tablodaki dml tetikleyici devre dışı bırakma

Aşağıdaki örnek Tetikleyici devre dışı uAddressBu tabloyu oluşturulduğu Address.

USE AdventureWorks2012;
GO
DISABLE TRIGGER Person.uAddress ON Person.Address;
GO

B.ddl Tetikleyici devre dışı bırakma

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

C.Aynı kapsam ile tanımlanan tüm Tetikleyiciler devre dışı bırakma

Aşağıdaki örnek sunucu kapsamında oluşturulan tüm ddl Tetikleyiciler devre dışı bırakır.

USE AdventureWorks2012;
GO
DISABLE Trigger ALL ON ALL SERVER;
GO

Ayrıca bkz.

Başvuru

TETIKLEYICI (Transact-sql) etkinleştir

alter TETIKLEYICI (Transact-sql)

CREATE TRIGGER (Transact-SQL)

drop TETIKLEYICI (Transact-sql)

sys.triggers (Transact-sql)