Membuat Pemicu DML
Berlaku untuk: SQL ServerAzure SQL Database Azure SQL Managed Instance
Topik ini menjelaskan cara membuat pemicu DML Transact-SQL dengan menggunakan SQL Server Management Studio dan dengan menggunakan pernyataan TRANSACT-SQL CREATE TRIGGER.
Sebelum Anda mulai
Batasan dan Pembatasan
Untuk daftar batasan dan batasan yang terkait dengan pembuatan pemicu DML, lihat CREATE TRIGGER (Transact-SQL).
Izin
Memerlukan izin UBAH pada tabel atau tampilan tempat pemicu sedang dibuat.
Cara Membuat Pemicu DML
Anda bisa menggunakan salah satu hal berikut ini:
Menggunakan SQL Server Management Studio
Di Object Explorer, sambungkan ke instans Mesin Database lalu perluas instans tersebut.
Perluas Database, perluas
AdventureWorks2022
database, perluas Tabel lalu perluas tabel Purchasing.PurchaseOrderHeader.Klik kanan Pemicu, lalu pilih Pemicu Baru.
Pada menu Kueri , klik Tentukan Nilai untuk Parameter Templat. Atau, Anda dapat menekan (Ctrl-Shift-M) untuk membuka kotak dialog Tentukan Nilai untuk Parameter Templat.
Dalam kotak dialog Tentukan Nilai untuk Parameter Templat, masukkan nilai berikut untuk parameter yang diperlihatkan.
Parameter Nilai Penulis Namamu Buat Tanggal Tanggal hari ini Deskripsi Memeriksa peringkat kredit vendor sebelum mengizinkan pesanan pembelian baru dengan vendor dimasukkan. Schema_Name Pembelian Trigger_Name NewPODetail2 Table_Name PurchaseOrderDetail Data_Modification_Statement Hapus UPDATE dan DELETE dari daftar. Klik OK.
Di Editor Kueri, ganti komentar
-- Insert statements for trigger here
dengan pernyataan berikut:IF @@ROWCOUNT = 1 BEGIN UPDATE Purchasing.PurchaseOrderHeader SET SubTotal = SubTotal + LineTotal FROM inserted WHERE PurchaseOrderHeader.PurchaseOrderID = inserted.PurchaseOrderID END ELSE BEGIN UPDATE Purchasing.PurchaseOrderHeader SET SubTotal = SubTotal + (SELECT SUM(LineTotal) FROM inserted WHERE PurchaseOrderHeader.PurchaseOrderID = inserted.PurchaseOrderID) WHERE PurchaseOrderHeader.PurchaseOrderID IN (SELECT PurchaseOrderID FROM inserted) END;
Untuk memverifikasi sintaks valid, pada menu Kueri, klik Urai. Jika pesan kesalahan dikembalikan, bandingkan pernyataan dengan informasi di atas dan benar sesuai kebutuhan dan ulangi langkah ini.
Untuk membuat pemicu DML, dari menu Kueri , klik Jalankan. Pemicu DML dibuat sebagai objek dalam database.
Untuk melihat pemicu DML yang tercantum di Object Explorer, klik kanan Pemicu dan pilih Refresh.
Menggunakan T-SQL
Di Object Explorer, sambungkan ke instans Mesin Database lalu perluas instans tersebut.
Dari menu File , klik Kueri Baru.
Salin dan tempel contoh berikut ke dalam jendela kueri dan klik Jalankan. Contoh ini membuat pemicu DML tersimpan yang sama seperti di atas.
-- Trigger valid for multirow and single row inserts -- and optimal for single row inserts. USE AdventureWorks2022; GO CREATE TRIGGER NewPODetail3 ON Purchasing.PurchaseOrderDetail FOR INSERT AS IF @@ROWCOUNT = 1 BEGIN UPDATE Purchasing.PurchaseOrderHeader SET SubTotal = SubTotal + LineTotal FROM inserted WHERE PurchaseOrderHeader.PurchaseOrderID = inserted.PurchaseOrderID END ELSE BEGIN UPDATE Purchasing.PurchaseOrderHeader SET SubTotal = SubTotal + (SELECT SUM(LineTotal) FROM inserted WHERE PurchaseOrderHeader.PurchaseOrderID = inserted.PurchaseOrderID) WHERE PurchaseOrderHeader.PurchaseOrderID IN (SELECT PurchaseOrderID FROM inserted) END;