Bagikan melalui


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.

Konvensi sintaks transact-SQL

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 safetyDDL .

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)