DROP TRIGGER (Transact-SQL)
Berlaku untuk:SQL Server Azure SQL Database
Azure SQL Managed Instance
Menghapus satu atau beberapa pemicu DML atau DDL dari database saat ini.
Sintaks
-- 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
Catatan
Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 dan yang lebih lama, lihat Dokumentasi versi sebelumnya.
Argumen
IF EXISTS
Berlaku untuk: SQL Server ( SQL Server 2016 (13.x) melalui versi saat ini, SQL Database).
Secara kondisional menghilangkan pemicu hanya jika sudah ada.
nama_skema
Adalah nama skema tempat pemicu DML berada. Pemicu DML dilingkup ke skema tabel atau tampilan tempat pemicu dibuat. schema_name tidak dapat ditentukan untuk pemicu DDL atau masuk.
trigger_name
Adalah nama pemicu yang akan dihapus. Untuk melihat daftar pemicu yang saat ini dibuat, gunakan sys.server_assembly_modules atau sys.server_triggers.
DATABASE
Menunjukkan cakupan pemicu DDL yang berlaku untuk database saat ini. DATABASE harus ditentukan jika juga ditentukan ketika pemicu dibuat atau dimodifikasi.
SEMUA SERVER
Berlaku untuk: SQL Server 2008 (10.0.x) dan yang lebih baru.
Menunjukkan cakupan pemicu DDL yang berlaku untuk server saat ini. SEMUA SERVER harus ditentukan jika juga ditentukan ketika pemicu dibuat atau dimodifikasi. SEMUA SERVER juga berlaku untuk pemicu masuk.
Catatan
Opsi ini tidak tersedia dalam database mandiri.
Keterangan
Anda dapat menghapus pemicu DML dengan menghilangkannya atau dengan menghilangkan tabel pemicu. Saat tabel dihilangkan, semua pemicu terkait juga dihilangkan.
Saat pemicu dihilangkan, informasi tentang pemicu dihapus dari sys.objects, sys.triggers , dan sys.sql_modules tampilan katalog.
Beberapa pemicu DDL dapat dihilangkan per pernyataan DROP TRIGGER hanya jika semua pemicu dibuat menggunakan klausa ON yang identik.
Untuk mengganti nama pemicu, gunakan DROP TRIGGER dan CREATE TRIGGER. Untuk mengubah definisi pemicu, gunakan ALTER TRIGGER.
Untuk informasi selengkapnya tentang menentukan dependensi untuk pemicu tertentu, lihat sys.sql_expression_dependencies, sys.dm_sql_referenced_entities (Transact-SQL), dan sys.dm_sql_referencing_entities (Transact-SQL).
Untuk informasi selengkapnya tentang melihat teks pemicu, lihat sp_helptext (Transact-SQL) dan sys.sql_modules (Transact-SQL).
Untuk informasi selengkapnya tentang melihat daftar pemicu yang ada, lihat sys.triggers (Transact-SQL) dan sys.server_triggers (Transact-SQL).
Izin
Untuk menghilangkan pemicu DML memerlukan izin UBAH pada tabel atau tampilan tempat pemicu ditentukan.
Untuk menghilangkan pemicu DDL yang ditentukan dengan cakupan server (ON ALL SERVER) atau pemicu masuk memerlukan izin CONTROL SERVER di server. Untuk menghilangkan pemicu DDL yang ditentukan dengan cakupan database (ON DATABASE) memerlukan izin UBAH PEMICU DDL DATABASE APA PUN dalam database saat ini.
Contoh
A. Menghilangkan pemicu DML
Contoh berikut menghilangkan pemicu employee_insupd
dalam database AdventureWorks2019. (Dimulai dengan SQL Server 2016 (13.x) Anda dapat menggunakan sintaks DROP TRIGGER IF EXISTS.)
IF OBJECT_ID ('employee_insupd', 'TR') IS NOT NULL
DROP TRIGGER employee_insupd;
B. Menghilangkan pemicu DDL
Contoh berikut menghilangkan pemicu safety
DDL .
Penting
Karena pemicu DDL tidak terlingkup skema dan, oleh karena itu tidak muncul dalam tampilan katalog sys.objects , fungsi OBJECT_ID tidak dapat digunakan untuk mengkueri apakah ada di database. Objek yang tidak terlingkup skema harus dikueri dengan menggunakan tampilan katalog yang sesuai. Untuk pemicu DDL, gunakan sys.triggers.
DROP TRIGGER safety
ON DATABASE;
Lihat juga
ALTER TRIGGER (Transact-SQL)
CREATE TRIGGER (Transact-SQL)
AKTIFKAN PEMICU (Transact-SQL)
NONAKTIFKAN PEMICU (Transact-SQL)
EVENTDATA (Transact-SQL)
Mendapatkan Informasi Tentang Pemicu DML
sp_help (Transact-SQL)
sp_helptrigger (Transact-SQL)
sys.triggers (Transact-SQL)
sys.trigger_events (Transact-SQL)
sys.sql_modules (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)