ПочатиПочніть безкоштовно

Відстеження виконання тригерів

Один із важливих аспектів моніторингу тригерів — мати історію їх виконання. Це дає змогу пов'язувати час спрацювання тригерів із проблемами, що виникають у базі даних.

Якщо часи збігаються, можливо, що проблеми спричинив тригер.

SQL Server надає інформацію про виконання будь-яких тригерів, які зараз перебувають у пам'яті, у поданні sys.dm_exec_trigger_stats. Але щойно тригер вивантажується з пам'яті, інформацію про нього також вилучають із цього подання, тож ви втрачаєте історію виконання тригера.

Щоб обійти це обмеження, ви вирішили скористатися таблицею TriggerAudit, щоб зберігати відомості про всі спроби змінити рядки в таблиці Orders, оскільки повідомляли, що ця таблиця часто не відповідає.

Ця вправа є частиною курсу

Створення та оптимізація тригерів у SQL Server

Переглянути курс

Інструкції до вправи

  • Змініть тригер PreventOrdersUpdate.
  • Налаштуйте тригер на спрацьовування під час оновлення рядків у таблиці Orders.
  • Додайте додаткові відомості про виконання тригера до таблиці TriggerAudit.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

-- 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);
Редагувати та запускати код