NONAKTIFKAN PEMICU (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Menonaktifkan pemicu.

Konvensi sintaks transact-SQL

Sintaksis

DISABLE TRIGGER { [ schema_name . ] trigger_name [ ,...n ] | ALL }  
ON { object_name | DATABASE | ALL SERVER } [ ; ]  

Catatan

Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 (12.x) dan versi yang lebih lama, lihat Dokumentasi versi sebelumnya.

Argumen

schema_name
Adalah nama skema tempat pemicu berada. schema_name tidak dapat ditentukan untuk pemicu DDL atau masuk.

trigger_name
Adalah nama pemicu yang akan dinonaktifkan.

SEMUA
Menunjukkan bahwa semua pemicu yang ditentukan pada cakupan klausul ON dinonaktifkan.

Perhatian

SQL Server membuat pemicu dalam database yang diterbitkan untuk replikasi penggabungan. Menentukan SEMUA dalam database yang diterbitkan menonaktifkan pemicu ini, yang mengganggu replikasi. Verifikasi bahwa database saat ini tidak diterbitkan untuk replikasi penggabungan sebelum menentukan SEMUA.

object_name
Adalah nama tabel atau tampilan tempat pemicu DML trigger_name dibuat untuk dijalankan.

DATABASE
Untuk pemicu DDL, menunjukkan bahwa trigger_name dibuat atau dimodifikasi untuk dijalankan dengan cakupan database.

SEMUA SERVER
Berlaku untuk: SQL Server 2008 (10.0.x) dan yang lebih baru.

Untuk pemicu DDL, menunjukkan bahwa trigger_name dibuat atau dimodifikasi untuk dijalankan dengan cakupan server. SEMUA SERVER juga berlaku untuk pemicu masuk.

Catatan

Opsi ini tidak tersedia dalam database mandiri.

Keterangan

Pemicu diaktifkan secara default saat dibuat. Menonaktifkan pemicu tidak menghilangkannya. Pemicu masih ada sebagai objek dalam database saat ini. Namun, pemicu tidak diaktifkan ketika pernyataan Transact-SQL yang diprogram dijalankan. Pemicu dapat diaktifkan kembali dengan menggunakan ENABLE TRIGGER. Pemicu DML yang ditentukan pada tabel juga dapat dinonaktifkan atau diaktifkan dengan menggunakan ALTER TABLE.

Mengubah pemicu dengan menggunakan pernyataan ALTER TRIGGER memungkinkan pemicu.

Izin

Untuk menonaktifkan pemicu DML, minimal, pengguna harus memiliki izin UBAH pada tabel atau tampilan tempat pemicu dibuat.

Untuk menonaktifkan pemicu DDL dengan cakupan server (ON ALL SERVER) atau pemicu masuk, pengguna harus memiliki izin CONTROL SERVER di server. Untuk menonaktifkan pemicu DDL dengan cakupan database (ON DATABASE), minimal, pengguna harus memiliki izin UBAH PEMICU DDL DATABASE APA PUN di database saat ini.

Contoh

Sampel kode Transact-SQL dalam artikel ini menggunakan AdventureWorks2022 database sampel, yang dapat Anda unduh dari beranda Sampel Microsoft SQL Server dan Proyek Komunitas.

J. Menonaktifkan pemicu DML pada tabel

Contoh berikut menonaktifkan pemicu uAddress yang dibuat pada tabel Person.

DISABLE TRIGGER Person.uAddress ON Person.Address;  
GO  

B. Menonaktifkan pemicu DDL

Contoh berikut membuat pemicu safety DDL dengan cakupan database, lalu menonaktifkannya.

CREATE TRIGGER safety   
ON DATABASE   
FOR DROP_TABLE, ALTER_TABLE   
AS   
   PRINT 'You must disable Trigger "safety" to drop or alter tables!'   
   ROLLBACK;  
GO  
DISABLE TRIGGER safety ON DATABASE;  
GO  

C. Menonaktifkan semua pemicu yang ditentukan dengan cakupan yang sama

Contoh berikut menonaktifkan semua pemicu DDL yang dibuat di cakupan server.

DISABLE Trigger ALL ON ALL SERVER;  
GO  

Lihat Juga

AKTIFKAN PEMICU (Transact-SQL)
UBAH PEMICU (Transact-SQL)
BUAT PEMICU (Transact-SQL)
JATUHKAN PEMICU (Transact-SQL)
sys.triggers (Transact-SQL)