트리거를 사용한 테이블 감사
회사에서는 가장 중요한 테이블의 변경 이력을 추적하기로 했습니다. 그중 하나가 Orders 테이블입니다.
Orders의 내용에 가해지는 모든 수정 사항은 TablesAudit에 기록되어야 합니다.
이 연습은 강의의 일부입니다
SQL Server에서 트리거 구축 및 최적화
연습 안내
Orders테이블에 새로운AFTER트리거를 생성하세요.- 트리거가
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;