SQL 서버 2000:레코드가 마지막으로 수정된 시기를 알 수 있는 방법이 있나요?
-
08-06-2019 - |
문제
테이블에 마지막 업데이트된 필드가 없으며 기존 데이터가 업데이트된 시기를 알아야 합니다.따라서 마지막 업데이트 필드를 추가해도 (내가 아는 한) 도움이 되지 않습니다.
해결책
SQL Server 2000은 이 정보를 추적하지 않습니다.
데이터베이스 모델에 따라 이 날짜를 추측하는 창의적이고 모호한 방법이 있을 수 있습니다.그러나 다른 데이터와 관련이 없는 하나의 테이블에 대해 이야기하고 있다면 운이 좋지 않습니다.
다른 팁
일종의 감사 메커니즘 없이는 변경 사항을 확인할 수 없습니다.수집되지 않은 정보를 추출하려고 합니다.레코드가 추가되거나 편집된 시기만 알아야 하는 경우 레코드가 업데이트될 때 트리거를 통해 업데이트되는 날짜/시간 필드를 추가하는 것이 가장 간단한 선택이 될 것입니다.
레코드가 삭제된 시기도 추적해야 하는 경우 감사 테이블을 사용하고 레코드가 추가, 편집 또는 삭제될 때 행이 있는 트리거에서 테이블을 채우는 것이 좋습니다.
로그 뷰어를 사용해 볼 수도 있습니다.이를 통해 기본적으로 트랜잭션 로그의 트랜잭션을 볼 수 있으므로 문제의 행을 업데이트한 문을 찾을 수 있습니다.나는 이것을 프로덕션 수준 감사 전략으로 권장하지는 않지만 긴급 상황에서는 유용하다는 것을 알았습니다.
여기 제가 사용한 것이 있습니다.무료이며 SQL Server 2000에서만 작동합니다.
해당 테이블에 타임스탬프 필드를 추가하고 업데이트 트리거를 사용하여 해당 타임스탬프 값을 업데이트할 수 있습니다.
옴니감사 전체 데이터베이스에 대한 감사를 구현하는 상용 패키지입니다.
무료 방법은 실행될 때 감사 테이블에 항목을 추가하는 각 테이블에 대한 트리거를 작성하는 것입니다.