NONAKTIFKAN PEMICU (Transact-SQL)
Berlaku untuk: SQL ServerAzure SQL Database Azure SQL Managed Instance
Menonaktifkan pemicu.
Sintaks
DISABLE TRIGGER { [ schema_name . ] trigger_name [ ,...n ] | ALL }
ON { object_name | DATABASE | ALL SERVER } [ ; ]
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 atau AdventureWorksDW2022
, yang dapat Anda unduh dari halaman 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)