Mengubah atau Mengganti Nama Pemicu DML
Berlaku untuk: SQL ServerAzure SQL Database Azure SQL Managed Instance
Artikel ini menjelaskan cara mengubah atau mengganti nama pemicu DML di SQL Server dengan menggunakan SQL Server Management Studio atau Transact-SQL.
Batasan
Saat Anda mengganti nama pemicu, pemicu harus berada di database saat ini, dan nama baru harus mengikuti aturan untuk pengidentifikasi.
Rekomendasi
Hindari menggunakan prosedur tersimpan sp_rename untuk mengganti nama pemicu. Mengubah bagian mana pun dari nama objek dapat merusak skrip dan prosedur tersimpan. Mengganti nama pemicu tidak mengubah nama objek yang sesuai di kolom definisi tampilan katalog sys.sql_modules . Kami menyarankan agar Anda menghilangkan dan membuat ulang pemicu sebagai gantinya.
Jika Anda mengubah nama objek yang dirujuk oleh pemicu DML, Anda harus memodifikasi pemicu sehingga teksnya mencerminkan nama baru. Oleh karena itu, sebelum Anda mengganti nama objek, tampilkan dependensi objek terlebih dahulu untuk menentukan apakah perubahan yang diusulkan memengaruhi pemicu apa pun.
Pemicu DML juga dapat dimodifikasi untuk mengenkripsi definisinya.
Untuk melihat dependensi pemicu, Anda dapat menggunakan SQL Server Management Studio atau tampilan fungsi dan katalog berikut:
Izin
Untuk mengubah pemicu DML memerlukan ALTER
izin pada tabel atau tampilan tempat pemicu ditentukan.
Menggunakan SQL Server Management Studio
Mengubah pemicu DML
Di Object Explorer, sambungkan ke instans Mesin Database lalu perluas instans tersebut.
Perluas database yang Anda inginkan, perluas Tabel, lalu perluas tabel yang berisi pemicu yang ingin Anda ubah.
Perluas Pemicu, klik kanan pemicu untuk memodifikasi, lalu pilih Ubah.
Ubah pemicu, lalu pilih Jalankan.
Mengganti nama pemicu DML
- Hapus atau nonaktifkan pemicu DML yang ingin Anda ganti namanya.
- Buat pemicu DML baru, menentukan nama baru.
Menggunakan Transact-SQL
Mengubah pemicu menggunakan ALTER TRIGGER
Sambungkan ke Mesin Database.
Dari bilah Standar, pilih Kueri Baru.
Salin dan tempel contoh berikut ke dalam kueri. Jalankan contoh pertama untuk membuat pemicu DML yang mencetak pesan yang ditentukan pengguna ke klien saat pengguna mencoba menambahkan atau mengubah data dalam
SalesPersonQuotaHistory
tabel. Jalankan pernyataan ALTER TRIGGER untuk memodifikasi pemicu agar diaktifkan hanya padaINSERT
aktivitas. Pemicu ini berguna karena mengingatkan pengguna bahwa memperbarui atau menyisipkan baris ke dalam tabel ini untuk juga memberi tahuCompensation
departemen.Buat pemicu.
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
Ubah pemicu.
USE AdventureWorks2022; GO ALTER TRIGGER Sales.bonus_reminder ON Sales.SalesPersonQuotaHistory AFTER INSERT AS RAISERROR ('Notify Compensation', 16, 10); GO
Mengganti nama pemicu menggunakan DROP TRIGGER dan ALTER TRIGGER
Sambungkan ke Mesin Database.
Dari bilah Standar, pilih Kueri Baru.
Salin dan tempel contoh berikut ke dalam jendela kueri dan pilih Jalankan. Contoh ini menggunakan pernyataan DROP TRIGGER dan CREATE TRIGGER untuk mengganti nama pemicu menjadi
Sales.bonus_reminder
Sales.bonus_reminder_2
.
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_2
ON Sales.SalesPersonQuotaHistory WITH ENCRYPTION
AFTER INSERT, UPDATE
AS RAISERROR ('Notify Compensation', 16, 10);
GO
Konten terkait
- BUAT PEMICU (Transact-SQL)
- JATUHKAN PEMICU (Transact-SQL)
- AKTIFKAN PEMICU (Transact-SQL)
- NONAKTIFKAN PEMICU (Transact-SQL)
- EVENTDATA (Transact-SQL)
- sp_rename (T-SQL)
- UBAH PEMICU (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)