MulaiMulai sekarang secara gratis

Melacak eksekusi trigger

Salah satu faktor penting saat memantau trigger adalah memiliki riwayat eksekusinya. Ini memungkinkan Anda mengaitkan waktu antar eksekusi trigger dengan masalah apa pun yang terjadi di database.

Jika waktunya cocok, ada kemungkinan masalah tersebut disebabkan oleh trigger.

SQL Server menyediakan informasi tentang eksekusi trigger apa pun yang saat ini tersimpan di memori pada view sys.dm_exec_trigger_stats. Namun, setelah trigger dikeluarkan dari memori, informasi tentangnya juga hilang dari view tersebut, sehingga Anda kehilangan riwayat eksekusi trigger.

Untuk mengatasi keterbatasan ini, Anda memutuskan menggunakan tabel TriggerAudit untuk menyimpan informasi tentang setiap upaya memodifikasi baris di tabel Orders, karena ada laporan bahwa tabel tersebut sering tidak responsif.

Latihan ini adalah bagian dari kursus

Membangun dan Mengoptimalkan Trigger di SQL Server

Lihat Kursus

Petunjuk latihan

  • Ubah trigger PreventOrdersUpdate.
  • Atur trigger agar dijalankan ketika baris pada tabel Orders diperbarui.
  • Tambahkan detail tambahan tentang eksekusi trigger ke dalam tabel TriggerAudit.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

-- Modify the trigger to add new functionality
___ TRIGGER PreventOrdersUpdate
ON ___
-- Prevent any row changes
INSTEAD OF ___
AS
	-- Keep history of trigger executions
	INSERT INTO ___ (TriggerName, ExecutionDate)
	SELECT 'PreventOrdersUpdate', 
           GETDATE();

	RAISERROR ('Updates on "Orders" table are not permitted.
                Place a new order to add new products.', 16, 1);
Edit dan Jalankan Kode