auto-increment int
기본 키가있는 테이블이 있는데 최대 값은 이제 T-SQL int
유형의 제한값입니다. 우리가 테이블을 다시 시드하려고 할 때 (키에 큰 갭이 있기 때문에 최대 int
값만큼 충분한 행을 찾을 수 없음) 최대 값 int
값으로 계속 재설정됩니다.기본 키가 오버플로되면 어떻게합니까?
분명히 심각한 문제를 야기합니다. PK는 결코이 가치를 얻지 못했고 데이터 유형을 변경하는 것은 큰 일이 될 것입니다. 재 시딩은 충분해야하지만 작동하지 않습니다!
어떻게 계속 재설정 될 수 있습니까?
편집 : 상황을 명확히하기 위해이 쿼리 SELECT MIN(CategoryID), MAX(CategoryID) FROM dbo.tblCategories
은 -2147483647, 2147483647을 반환합니다. int
유형의 최소 및 최대 값에 실제 PK 값이 있음을 의미합니다.
사용중인 최대 값은 무엇입니까? 내 생각 엔 그것은'int'에 저장 가능한 최대 값이라는 것입니다. –
나는 이것을 포함하는 게시물을 명확히하고있다. –
열을 다시 시드하는 방법, DBCC CHECKIDENT (TABLE_NAME, RESEED, NEW_SEED_VALUE)를 실행하고 있습니까? 신원 증분 값이 높을 수도 있습니다. 데이터의 틈에 눈치 채 셨던 패턴이 있습니까? –