데이터 집합에 대한 개별 변경 사항을 매일 추출해야합니다. 따라서 제품 및 고객 정보가 포함 된 14 개의 테이블이 있으며 추출에는 새로 입력 된 각 테이블의 레코드 또는 업데이트 된 열이있는 레코드 만 표시되어야합니다.데이터에 대한 개별 변경 내용보고
이 작업을 수행하는 가장 좋은 방법은 무엇입니까?
우리는 SQL Server 2008 R2를 사용하고 있으며 C#으로 개발하고 있습니다.
데이터 집합에 대한 개별 변경 사항을 매일 추출해야합니다. 따라서 제품 및 고객 정보가 포함 된 14 개의 테이블이 있으며 추출에는 새로 입력 된 각 테이블의 레코드 또는 업데이트 된 열이있는 레코드 만 표시되어야합니다.데이터에 대한 개별 변경 내용보고
이 작업을 수행하는 가장 좋은 방법은 무엇입니까?
우리는 SQL Server 2008 R2를 사용하고 있으며 C#으로 개발하고 있습니다.
실수로 복구 할 수 있도록 사용자의 변경 사항을 추적하고자 할 때 기본 테이블이 수정 될 때마다 모든 pks 및 트리거가 작성된 비정규 화 된 '감사'테이블을 만들어 트리거를 추가했습니다. 트리거의
하나였다
CREATE TRIGGER [dbo].[programGroupProcedureCodeModRateDate_insdel]
ON [dbo].[programGroupProcedureCodeModRateDate]
AFTER insert, delete
AS
BEGIN
SET NOCOUNT ON;
insert into archive
select
procedureCodeModRate,
null as programGroup_svc, null as serviceID, null as serviceDesc, null as isExcludedFromIncreases,
null as unitID,
null as rateMaskID, null as programGroup_unpub, null as isUnpublished,
programGroup_rate, startID, Rate, isDiscontinued, comment,
getdate() as lastupdated, Current_User as lastUpdatedBy, 'i' as operation
from inserted
insert into archive
select
procedureCodeModRate,
null as programGroup_svc, null as serviceID, null as serviceDesc, null as isExcludedFromIncreases,
null as unitID,
null as rateMaskID, null as programGroup_unpub, null as isUnpublished,
programGroup_rate, startID, Rate, isDiscontinued, comment,
getdate() as lastupdated, Current_User as lastUpdatedBy, 'd' as operation
from deleted
END
다른 테이블에 트리거를 설정하고 삽입 또는 업데이트가 변경된 필드 및 변경이 발생한 다른 테이블에 기록됩니다.
어쩌면 [SQL 서버 감사 (http://msdn.microsoft.com/en-us/library/cc280386%28v=sql.105%29.aspx) –