레코드 버전을 저장할 테이블이 있습니다.추가 버전의 테이블 설정 테이블
열은 : 동일한 ID와 증가의 versionNumber와 함께 테이블에 새 행을 삽입합니다 항목을 저장
Id (Guid)
VersionNumber (int)
Title (nvarchar)
Description (nvarchar)
etc...
.
어떻게 순차적 인 VersionNumber 값을 생성하는 것이 가장 좋은지 잘 모르겠습니다. 내 생각은 다음과 같습니다.
SELECT @NewVersionNumber = MAX(VersionNumber) + 1
FROM VersionTable
WHERE Id = @ObjectId
그런 다음 insert 문에 @NewVersionNumber를 사용하십시오.
이 방법을 사용하면 동시 처리 문제를 피하기 위해 트랜잭션을 직렬 가능으로 설정해야합니까? 동일한 ID에 대해 중복 된 VersionNumbers를 사용하고 싶지 않습니다.
이렇게하면 직렬화 가능 트랜잭션을 사용하지 않는 더 좋은 방법이 있습니까?
@Brownie - 내 대답의 안전성에 대한 내 질문에 명확한 응답이 아직 없습니다. 잠자기 후 다시 확인하십시오 - 가능하면 내 대답을 삭제할 수 있습니다 (나는 길을 잃을 수 있습니다.). 좋은 정보가 있습니다. 특히 쿼리 힌트를 안전하게 만들 수있는 테이블 힌트와 같은 메서드에 대한 정보가 있습니다. 그래도 제약 조건을 사용하는 것이 아마도 가장 간단하고 안전한 방법 일 것입니다. –