JATUHKAN PEMICU (Transact-SQL)
Berlaku untuk: SQL ServerAzure 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
Argumen
JIKA ADA
Berlaku untuk: SQL Server (SQL Server 2016 (13.x) melalui versi saat ini, SQL Database).
Secara kondisional menghilangkan pemicu hanya jika sudah ada.
schema_name
Adalah nama skema tempat pemicu DML berada. Pemicu DML dilingkupkan 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 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 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 menjatuhkannya atau dengan menjatuhkan tabel pemicu. Saat tabel dihilangkan, semua pemicu terkait juga dihilangkan.
Saat pemicu dihilangkan, informasi tentang pemicu dihapus dari tampilan katalog sys.objects, sys.triggers, dan sys.sql_modules.
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 ALTER 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
J. Menghilangkan pemicu DML
Contoh berikut menghilangkan pemicu employee_insupd
dalam database AdventureWorks2022. (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
UBAH PEMICU (Transact-SQL)
BUAT PEMICU (Transact-SQL)
AKTIFKAN PEMICU (Transact-SQL)
NONAKTIFKAN PEMICU (Transact-SQL)
EVENTDATA (Transact-SQL)
Mendapatkan Informasi Tentang Pemicu DML
sp_help (T-SQL)
sp_helptrigger (T-SQL)
sys.triggers (Transact-SQL)
sys.trigger_events (T-SQL)
sys.sql_modules (Transact-SQL)
sys.assembly_modules (T-SQL)
sys.server_triggers (T-SQL)
sys.server_trigger_events (T-SQL)
sys.server_sql_modules (T-SQL)
sys.server_assembly_modules (T-SQL)