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ı
Mevcut veritabanından bir veya daha fazla DML veya DDL tetikleyicisini kaldırır.
Transact-SQL söz dizimi kuralları
Sözdizimi
-- Trigger on an INSERT, UPDATE, or DELETE statement to a table or view (DML Trigger)
DROP TRIGGER [ IF EXISTS ] [schema_name.]trigger_name [ ,...n ] [ ; ]
-- Trigger on a CREATE, ALTER, DROP, GRANT, DENY, REVOKE or UPDATE statement (DDL Trigger)
DROP TRIGGER [ IF EXISTS ] trigger_name [ ,...n ]
ON { DATABASE | ALL SERVER }
[ ; ]
-- Trigger on a LOGON event (Logon Trigger)
DROP TRIGGER [ IF EXISTS ] trigger_name [ ,...n ]
ON ALL SERVER
Arguments
EĞER VARSA
Şunlar için geçerlidir: SQL Server (SQL Server 2016 (13.x) 'den günümüz sürümü olan SQL Veritabanı'na kadar.
Tetikleyici ancak zaten varsa koşullu olarak bırakılır.
schema_name
DML tetikleyicisinin ait olduğu şemanın adıdır. DML tetikleyicileri, oluşturuldukları tablo veya görünüm şemasına göre kapsamlıdır.
schema_name DDL veya giriş tetikleyicileri için belirtilemez.
trigger_name
Çıkarılacak tetikleyicinin adı. Şu anda oluşturulan tetikleyicilerin listesini görmek için sys.server_assembly_modules veya sys.server_triggers kullanın.
DATABASE
DDL tetikleyicisinin kapsamının mevcut veritabanına uygulandığını gösterir. DATABASE tetikleyici oluşturulduğunda veya değiştirildiğinde de belirtilmişse belirtilmelidir.
TÜM SUNUCU
için geçerlidir: SQL Server 2008 (10.0.x) ve üzeri.
DDL tetikleyicisinin kapsamının mevcut sunucuya uygulandığını gösterir. ALL SUNUCU, tetikleyicinin oluşturulduğu veya değiştirildiği zaman da belirtilmiş olup olmadığı belirtilmelidir. ALL SERVER ayrıca giriş tetikleyicileri için de geçerlidir.
Uyarı
Bu seçenek, kapalı bir veritabanında mevcut değildir.
Açıklamalar
DML tetikleyicisini düşürerek ya da tetik tablosunu kaldırarak kaldırabilirsiniz. Bir tablo kaldırıldığında, ilgili tüm tetikleyiciler de düşürülür.
Bir tetikleyici bırakıldığında, tetikleyiciyle ilgili bilgiler sys.objects, sys.triggers ve sys.sql_modules katalog görünümlerinden kaldırılır.
Birden fazla DDL tetikleyicisi, DROP TRIGGER ifadesi başına yalnızca tüm tetikleyiciler aynı ON cümleleri kullanılarak oluşturulmuşsa düşürülebilir.
Bir tetikleyiciyi yeniden adlandırmak için DROP TRIGGER kullanın ve CREATE TRIGGER kullanın. Tetikleyicinin tanımını değiştirmek için ALTER TRIGGER kullanın.
Belirli bir tetikleyici için bağımlılıkların belirlenmesi hakkında daha fazla bilgi için sys.sql_expression_dependencies, sys.dm_sql_referenced_entities (Transact-SQL) ve sys.dm_sql_referencing_entities (Transact-SQL) bölümlerine bakınız.
Tetikleyicinin metnini görüntüleme hakkında daha fazla bilgi için sp_helptext (Transact-SQL) ve sys.sql_modules (Transact-SQL) bölümlerine bakınız.
Mevcut tetikleyicilerin listesini görüntüleme hakkında daha fazla bilgi için sys.triggers (Transact-SQL) ve sys.server_triggers (Transact-SQL) bölümlerine bakınız.
Permissions
DML tetikleyicisini düşürmek için tetikleyicinin tanımlandığı tablo veya görünüm üzerinde ALTER izni gerekir.
Sunucu kapsamı (TÜM SUNUCUDA) veya giriş tetikleyicisi ile tanımlanmış bir DDL tetikleyicisini bırakmak için sunucuda CONTROL SERVER izni gerekir. Veritabanı kapsamına (ON DATABASE) sahip tanımlanmış bir DDL tetikleyicisini bırakmak için mevcut veritabanında HER VERITABANI DDL TETIKLEYICI iznini değiştirmek gerekir.
Örnekler
A. DML tetikleyicisini bırakmak
Aşağıdaki örnek, tetikleyiciyi AdventureWorks2025 veritabanında bırakır employee_insupd . (SQL Server 2016 (13.x) ile başlayarak DROP TRIGGER IF EXISTS sözdizimini kullanabilirsiniz.)
IF OBJECT_ID ('employee_insupd', 'TR') IS NOT NULL
DROP TRIGGER employee_insupd;
B. DDL tetikleyicisini bırakmak
Aşağıdaki örnek DDL tetikleyicisini safetydüşürür.
Önemli
DDL tetikleyicileri şema kapsamlı olmadığı ve bu nedenle sys.objects katalog görünümünde görünmediği için, OBJECT_ID fonksiyonu veritabanında var olup olmadıklarını sorgulamak için kullanılamaz. Şema kapsamı olmayan nesneler, uygun katalog görünümü kullanılarak sorgulanmalıdır. DDL tetikleyicileri için sys.triggers kullanın.
DROP TRIGGER safety
ON DATABASE;
Ayrıca Bkz.
ALTER TRIGGER (Transact-SQL)
TETİKLEYİCİ OLUŞTUR (Transact-SQL)
TETİKLEYİCİYİ ETKİNLEŞTİR (Transact-SQL)
TETİKLEMİYİ DEVRE DIŞI BIRAK (Transact-SQL)
OLAY VERILERI (Transact-SQL)
DML Tetikleyicileri Hakkında Bilgi Alma
sp_help (Transact-SQL)
sp_helptrigger (Transact-SQL)
sys.triggers (Transact-SQL)
sys.trigger_events (Transact-SQL)
sys.sql_modüller (Transact-SQL)
sys.assembly_modules (Transact-SQL)
sys.server_triggers (Transact-SQL)
sys.server_trigger_events (Transact-SQL)
sys.server_sql_modules (Transact-SQL)
sys.server_assembly_modules (Transact-SQL)