JATUHKAN PEMICU (Transact-SQL)
Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance
Menghapus satu atau beberapa pemicu DML atau DDL dari database saat ini.
Sintaksis
-- 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 (12.x) dan versi yang lebih lama, lihat Dokumentasi versi sebelumnya.
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 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 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 (T-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)
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk