시작하기무료로 시작하기

트리거를 사용한 테이블 감사

회사에서는 가장 중요한 테이블의 변경 이력을 추적하기로 했습니다. 그중 하나가 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;
코드 편집 및 실행