Menghapus atau Menonaktifkan Pemicu DML

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Topik ini menjelaskan cara menghapus atau menonaktifkan pemicu DML di SQL Server dengan menggunakan SQL Server Management Studio atau Transact-SQL.

Dalam Topik Ini

Sebelum Anda mulai

Rekomendasi

  • Saat pemicu dihapus, pemicu akan dihilangkan dari database saat ini. Tabel dan data yang menjadi dasarnya tidak terpengaruh. Menghapus tabel secara otomatis menghapus pemicu apa pun pada tabel.

  • Pemicu diaktifkan secara default saat dibuat.

  • Menonaktifkan pemicu tidak menghilangkannya. Pemicu masih ada sebagai objek dalam database saat ini. Namun, pemicu tidak akan diaktifkan ketika pernyataan INSERT, UPDATE, atau DELETE tempat pemicu diprogram dijalankan. Pemicu yang dinonaktifkan dapat diaktifkan kembali. Mengaktifkan pemicu tidak membuatnya kembali. Pemicu diaktifkan dengan cara yang sama seperti ketika awalnya dibuat.

Keamanan

Izin

Untuk menghapus pemicu DML memerlukan izin ALTER pada tabel atau tampilan tempat pemicu ditentukan.

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

Menggunakan SQL Server Management Studio

Untuk menghapus pemicu DML

  1. Di Object Explorer, sambungkan ke instans Mesin Database lalu perluas instans tersebut.

  2. Perluas database yang Anda inginkan, perluas Tabel, lalu perluas tabel yang berisi pemicu yang ingin Anda hapus.

  3. Perluas Pemicu, klik kanan pemicu untuk menghapus, lalu klik Hapus.

  4. Dalam kotak dialog Hapus Objek , verifikasi pemicu yang akan dihapus, lalu klik OK.

Untuk menonaktifkan dan mengaktifkan pemicu DML

  1. Di Object Explorer, sambungkan ke instans Mesin Database lalu perluas instans tersebut.

  2. Perluas database yang Anda inginkan, perluas Tabel, lalu perluas tabel yang berisi pemicu yang ingin Anda nonaktifkan.

  3. Perluas Pemicu, klik kanan pemicu untuk menonaktifkan, lalu klik Nonaktifkan.

  4. Untuk mengaktifkan pemicu, klik Aktifkan.

Menggunakan T-SQL

Untuk menghapus pemicu DML

  1. Sambungkan ke Mesin Database.

  2. Dari bilah Standar, klik Kueri Baru.

  3. Salin dan tempel contoh berikut ke dalam jendela kueri. Jalankan pernyataan CREATE TRIGGER untuk membuat pemicu Sales.bonus_reminder . Untuk menghapus pemicu, jalankan pernyataan DROP TRIGGER .

--Create the trigger.  
USE AdventureWorks2022;  
GO  
IF OBJECT_ID(N'Sales.bonus_reminder', N'TR') IS NOT NULL  
    DROP TRIGGER Sales.bonus_reminder;  
GO  
CREATE TRIGGER Sales.bonus_reminder  
ON Sales.SalesPersonQuotaHistory  
WITH ENCRYPTION  
AFTER INSERT, UPDATE   
AS RAISERROR ('Notify Compensation', 16, 10);  
GO  
  
--Delete the trigger.  
USE AdventureWorks2022;  
GO  
IF OBJECT_ID ('Sales.bonus_reminder', 'TR') IS NOT NULL  
   DROP TRIGGER Sales.bonus_reminder;  
GO  
  

Untuk menonaktifkan dan mengaktifkan pemicu DML

  1. Sambungkan ke Mesin Database.

  2. Dari bilah Standar, klik Kueri Baru.

  3. Salin dan tempel contoh berikut ke dalam jendela kueri. Jalankan pernyataan CREATE TRIGGER untuk membuat pemicu Sales.bonus_reminder . Untuk menonaktifkan dan mengaktifkan pemicu, jalankan pernyataan DISABLE TRIGGER dan ENABLE TRIGGER .

--Create the trigger.  
USE AdventureWorks2022;  
GO  
IF OBJECT_ID(N'Sales.bonus_reminder', N'TR') IS NOT NULL  
    DROP TRIGGER Sales.bonus_reminder;  
GO  
CREATE TRIGGER Sales.bonus_reminder  
ON Sales.SalesPersonQuotaHistory  
WITH ENCRYPTION  
AFTER INSERT, UPDATE   
AS RAISERROR ('Notify Compensation', 16, 10);  
GO  
  
--Disable the trigger.  
USE AdventureWorks2022;  
GO  
DISABLE TRIGGER Sales.bonus_reminder ON Sales.SalesPersonQuotaHistory;  
GO  
  
--Enable the trigger.  
USE AdventureWorks2022;  
GO  
ENABLE TRIGGER Sales.bonus_reminder ON Sales.SalesPersonQuotaHistory;  
GO  

Lihat Juga

UBAH PEMICU (Transact-SQL)
BUAT PEMICU (Transact-SQL)
JATUHKAN 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)