트리거가 트리거를 통해 트리거 된 업데이트로 인해 레코드가 잠겨 있지 않은 상태에서 트리거를 통해 감사 테이블의 레코드를 업데이트하는 방법이 있습니까?데이터베이스 잠금이없는 트리거를 통한 SQL 업데이트
그래서 우리는 사용자 테이블과 삽입, 업데이트, 삭제시 발생하는 트리거를 사용하여 변경된 값을 일부 감사 테이블에 기록하지만 감사 테이블이 잠겨서 다른 트리거가 작업을 수행하지 못하도록하고 싶지는 않습니다. 감사 테이블에서.
편집 :는 명확히하기 위해, 내가 가지고있는 문제가 여러 테이블이 다른 트리거를 통해 같은 감사 테이블에보고 있음을, 그래서 하나의 테이블 잠금 업데이트되는 다른 모든 테이블에 대한 업데이트. 트랜잭션이 롤백되는 경우에 대한 우려 사항은 감사 테이블이 변경 추적만을위한 것이며 감사 레코드가 롤백되면 감사 테이블이 롤백되지 않으면 문제가되지 않는 것과 같은 우려가되지 않습니다.
나는 그것이 작동하는 방법을 생각해 냈지만 이것이 가능한지 (또는 어떻게 할 수 있을지) 모르겠다. 처음에 호출 된 트리거 대신 새로운 연결을 사용하는 방법이 있습니까?
트랜잭션이 롤백되면 다른 프로세스가 감사 테이블의 레코드를 읽으려고합니까? –
감사 테이블의 데이터를 잠그고 싶습니다. 진짜 문제는 감사 테이블의 리프 노드를 핫 스폿으로 지정하여 감사 테이블에 모든 인서트를 동일한 리프 노드 페이지에 넣는 감사 테이블에 순차적 (가능하면 클러스터 된) 기본 키 인덱스가있는 것입니다 시간. 기본 키를 더 무작위 정렬로 변경하면 잠금 문제가 해결됩니다. –