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

Аудит таблиць за допомогою тригерів

Компанія вирішила відстежувати зміни, внесені до всіх найважливіших таблиць. Одна з таких таблиць — Orders.

Будь-які зміни вмісту Orders слід вставляти до TablesAudit.

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

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

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

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

  • Створіть новий тригер AFTER для таблиці Orders.
  • Налаштуйте, щоб тригер спрацьовував для операторів INSERT, UPDATE та DELETE.

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

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

-- Add a trigger that tracks table changes
___ ___ OrdersAudit
ON Orders
___ INSERT, ___, ___
AS
	DECLARE @Insert BIT = 0;
	DECLARE @Delete BIT = 0;
	IF EXISTS (SELECT * FROM inserted) SET @Insert = 1;
	IF EXISTS (SELECT * FROM deleted) SET @Delete = 1;
	INSERT INTO ___ (TableName, EventType, UserAccount, EventDate)
	SELECT 'Orders' AS TableName
	       ,CASE WHEN @Insert = 1 AND @Delete = 0 THEN 'INSERT'
				 WHEN @Insert = 1 AND @Delete = 1 THEN 'UPDATE'
				 WHEN @Insert = 0 AND @Delete = 1 THEN 'DELETE'
				 END AS Event
		   ,ORIGINAL_LOGIN() AS UserAccount
		   ,GETDATE() AS EventDate;
Редагувати та запускати код