Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Microsoft Fabric'te SQL veritabanı
DML, DDL veya giriş tetikleyicisini etkinleştirir.
Transact-SQL söz dizimi kuralları
Sözdizimi
ENABLE TRIGGER { [ schema_name . ] trigger_name [ ,...n ] | ALL }
ON { object_name | DATABASE | ALL SERVER } [ ; ]
Arguments
schema_name
Tetikleyicinin ait olduğu şemanın adıdır.
schema_name DDL veya oturum açma tetikleyicileri için belirtilemiyor.
trigger_name
Tetikleyicinin adı etkinleştirilecek mi?
HEPSİ
ON maddesinin kapsamında tanımlanan tüm tetikleyicilerin etkin olduğunu gösterir.
object_name
DML tetikleyicisinin çalıştırılmak üzere oluşturulduğu tablo veya görünüm trigger_name adıdır.
DATABASE
DDL tetikleyicisi için, trigger_name veritabanı kapsamıyla çalıştırılacak şekilde oluşturulduğunu veya değiştirildiğini gösterir.
TÜM SUNUCU
için geçerlidir: SQL Server 2008 (10.0.x) ve üzeri.
DDL tetikleyicisi için, trigger_name sunucu kapsamıyla çalıştırılacak şekilde oluşturulduğunu veya değiştirildiğini gösterir. ALL SERVER ayrıca giriş tetikleyicileri için de geçerlidir.
Uyarı
Bu seçenek, kapalı bir veritabanında mevcut değildir.
Açıklamalar
Bir tetikleyiciyi etkinleştirmek onu yeniden yaratmaz. Devre dışı bırakılmış bir tetikleyici mevcut veritabanında bir nesne olarak hâlâ var ama ateşlenmiyor. Tetikleyiciyi etkinleştirmek için, orijinal programlandığı Transact-SQL açıklamaları çalıştırıldığında tetikleyici ateşlenir. Tetikleyiciler, DISABLE TRIGGER kullanılarak devre dışı bırakılır. Tablolarda tanımlanan DML tetikleyicileri de ALTER TABLE kullanılarak devre dışı bırakılabilir veya etkinleştirilebilir.
Permissions
DML tetikleyicisini etkinleştirmek için en azından kullanıcının, tetikleyicinin oluşturulduğu tablo veya görünüm üzerinde ALTER iznine sahip olması gerekir.
Sunucu kapsamı (TÜM SUNUCUDA) veya giriş tetikleyicisi olan bir DDL tetikleyicisini etkinleştirmek için, kullanıcının sunucuda CONTROL SERVER iznine ihtiyacı vardır. Veritabanı kapsamına sahip bir DDL tetikleyicisini (VERITABANI ÜZERİNDE) etkinleştirmek için en azından bir kullanıcının mevcut veritabanındaki HERSHANGİ DDL TRIGGER iznini değiştirmesi gerekir.
Örnekler
A. Bir tabloda DML tetikleyicisinin etkinleştirilmesi
Aşağıdaki örnek, AdventureWorks veritabanında tabloda Address oluşturulan tetikleyiciyi uAddress devre dışı bırakır ve etkinleştirir.
DISABLE TRIGGER Person.uAddress ON Person.Address;
GO
ENABLE Trigger Person.uAddress ON Person.Address;
GO
B. DDL tetikleyicisini etkinleştirmek
Aşağıdaki örnek, veritabanı kapsamına sahip bir DDL tetikleyicisi safety oluşturur, ardından bunu devre dışı bırakır ve etkinleştirir.
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ı kapsamda tanımlanmış tüm tetikleyicileri etkinleştirmek
Aşağıdaki örnek, sunucu kapsamında oluşturulan tüm DDL tetikleyicilerini etkinleştirir.
için geçerlidir: SQL Server 2008 (10.0.x) ve üzeri.
ENABLE Trigger ALL ON ALL SERVER;
GO
Ayrıca Bkz.
TETİKLEMİYİ DEVRE DIŞI BIRAK (Transact-SQL)
ALTER TRIGGER (Transact-SQL)
TETİKLEYİCİ OLUŞTUR (Transact-SQL)
ATKI TETIK (Transact-SQL)
sys.triggers (Transact-SQL)