2011-03-30 2 views
0

기본 키에 ID 지정이있는 테이블이있는 Microsoft SQl 서버 2005 데이터베이스가 자동 증가로 설정됩니다.행을 건너 뛰는 ID 사양 로그를 찾을 수있는 위치

최근에 기본 키는 두 개의 숫자를 건너 뜁니다.

그러나 가능한 경우 왜 건너 뛴 이유와 언제 저장 프로 시저 롤백이 발생하고 기본 키 시퀀스가 ​​롤백되지 않았거나 어떻게 든 삭제 된 경우를 알고 싶습니다.

내 질문에 Microsoft 서버 관리 스튜디오에 이라는 지정된 레코드 (예 : 트랜잭션 로그 등)가 저장되어있어이 스킵이 발생한 이유를 알아 내려고합니다.

답변

1

코드가 기록하지 않는 한 레코드가 없습니다. 그래서 아니오 : SQL Server는이 점에주의하지 않습니다.

트랜잭션 롤백 또는 INSERT 오류 (단일 명령문 롤백)는 숫자 시퀀스에 간격을 생성합니다. SQL Server는이 점에주의하지 않습니다.

+0

도와 줘서 고마워. 내가 알고 싶었던 전부 야. – Stephen

2

당신은 롤백이 발생하면 1 씩 증가 때마다, 당신은 당신의 IDS에서 HAPS를 볼 수 있다는 IDENTITY는 한 가정 - 롤백의 경우에, ID 값이 그래서 ID 값 다시 되돌릴 수 없습니다 것입니다 그 작업에 할당 된 것은 본질적으로 손실 될 것입니다. 이는 전적으로 정상적인 동작입니다.

하나의 삽입이 실패/롤백되는 경우 많은 양의 INSERT가 있다고 가정하면 평균 시간 내에 INSERT의 전체적인 부분이있을 수 있으므로 IDENTITY 값 증가분을 롤백하면 악몽이됩니다.

+0

안녕하세요. 그렇다면이 경우 1 씩 증가합니다. 아주 적은 양의 인서트가 어디에서 일어 났는지 기록이나 로그를 찾을 수 있습니까? 덕분에 – Stephen

관련 문제