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ı
Bir tetikleyiciyi devre dışı bırakır.
Transact-SQL söz dizimi kuralları
Sözdizimi
DISABLE 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 giriş tetikleyicileri için belirtilemez.
trigger_name
Devre dışı bırakılması gereken tetikleyicinin adı mı?
HEPSİ
ON maddesinin kapsamında tanımlanan tüm tetikleyicilerin devre dışı bırakıldığını gösterir.
Dikkat
SQL Server, veri tabanlarında birleştirme çoğaltımı için yayımlanan tetikleyiciler oluşturur. Yayınlanmış veritabanlarında ALL belirtmek bu tetikleyicileri devre dışı bırakır ve bu da çoğaltmayı bozar. ALL belirtmeden önce mevcut veritabanının birleştirme çoğaltımı için yayımlanmadığını doğrulayın.
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
Tetikleyiciler oluşturulduğunda varsayılan olarak etkinleştirilir. Bir tetikleyiciyi devre dışı bırakmak onu düşürmez. Tetikleyici hâlâ mevcut veritabanında bir nesne olarak varlığını sürdürmektedir. Ancak, tetikleyici, programlandığı herhangi bir Transact-SQL ifadesi çalıştırıldığında ateşlenmez. Tetikleyiciler, ENABLE TRIGGER kullanılarak yeniden etkinleştirilebilir. Tablolarda tanımlanan DML tetikleyicileri de ALTER TABLE kullanılarak devre dışı bırakılabilir veya etkinleştirilebilir.
ALTER TRIGGER ifadesi kullanılarak tetikleyiciyi değiştirmek, tetikleyiciyi etkinleştirir.
Permissions
DML tetikleyicisini devre dışı bırakmak için en azından bir 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 devre dışı bırakmak için, kullanıcının sunucuda CONTROL SERVER iznine sahip olması gerekir. Veritabanı kapsamına sahip bir DDL tetikleyicisini (ON DATABASE) devre dışı bırakmak için en azından bir kullanıcının mevcut veritabanında DETER ANY DATABASE DDL TRIGGER iznine sahip olması gerekir.
Örnekler
Bu makaledeki kod örnekleri, AdventureWorks2025 giriş sayfasından indirebileceğiniz AdventureWorksDW2025 veya örnek veritabanını kullanır.
A. Bir masada DML tetikleyicisini devre dışı bırakmak
Aşağıdaki örnek, tabloda uAddressoluşturulan tetikleyiciyi Person devre dışı bırakır.
DISABLE TRIGGER Person.uAddress ON Person.Address;
GO
B. DDL tetikleyicisini devre dışı bırakmak
Aşağıdaki örnek, veritabanı kapsamına sahip bir DDL tetikleyicisi safety oluşturur ve ardından devre dışı bırakır.
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ı kapsamda tanımlanmış tüm tetikleyicileri devre dışı bırakmak
Aşağıdaki örnek, sunucu kapsamında oluşturulan tüm DDL tetikleyicilerini devre dışı bırakır.
DISABLE Trigger ALL ON ALL SERVER;
GO
Ayrıca Bkz.
TETİKLEYİCİYİ ETKİNLEŞTİR (Transact-SQL)
ALTER TRIGGER (Transact-SQL)
TETİKLEYİCİ OLUŞTUR (Transact-SQL)
ATKI TETIK (Transact-SQL)
sys.triggers (Transact-SQL)