최근에 데이터베이스 테이블에서 감사를 작성하여 모든 변경 사항을 추적 할 수 있도록했습니다. 내가 같은 테이블을 생성 한 감사를 들면SQL 서버에서 데이터 감사 만들기
[TableA]
------
ID
ColumnA
ColumnB
ColumnC
:
나는 다음과 같은 테이블이 있다고 가정하자
[TableA.Audit]
------
ID
TableAID
UserID
Date (default value = getdate())
ColumnA
ColumnB
ColumnC
그때 쓴 적이을 스크립트와 같은 :
DECLARE @currentColumnA int
,@currentColumnB int
,@currentColumnC int
SELECT TOP 1 @currentColumnA=ColumnA
,@currentColumnB=ColumnB
,@currentColumnC=ColumnC
FROM [TableA]
WHERE [email protected]
UPDATE [TableA]
SET [email protected]
,[email protected]
,[email protected]
WHERE [email protected]
INSERT INTO [TableA.Audit] (TableAID, UserID, ColumnA, ColumnB, ColumnC)
VALUES (@TableAID, @UserID, NULLIF(@ColumnA, @currentColumnA), NULLIF(@ColumnB, @currentColumnB), NULLIF(@ColumnC, @currentColumnC))
이 문제는 ColumnD
필드를에 추가하는 경우입니다. 0 위의 스크립트뿐만 아니라 TableA.Audit
테이블을 편집해야합니다.
따라서 더 좋은 방법이 있습니까?
상황에 따라 [이 대답] (http://stackoverflow.com/questions/6998774/update-function-in-transact-sql-a-boolean-condition/7151476#7151476)이 도움이 될 수 있습니다. .(이것은 @HLGEM이 말하는 것의 단순화 된 버전입니다.) –