복붙노트

[SQL] SQL 서버 ID 열 값은 0에서 시작하는 대신 1

SQL

SQL 서버 ID 열 값은 0에서 시작하는 대신 1

나는 표가 IDENTITY (1,1)가 CREATE에도 불구하고, 내 데이터베이스에서 일부 테이블은 0에서 그것의 ID를 시작하는 이상한 상황을 가지고있다. 이것은 일부 테이블,하지만 다른 사람을 위해 이렇게이다. 그것은 오늘날까지 일했다.

나는 재설정 ID 열을 시도했다 :

DBCC CHECKIDENT (SyncSession, reseed, 0);

그러나 새로운 기록은 0으로 시작합니다. 나는 모든 테이블이 일을 시도하지만, 일부는 여전히 1에서 0 일부에서 시작합니다.

모든 포인터?

(나는 고급 서비스와 SQL Server Express에 2005을 사용하고 있습니다)

해결법

  1. ==============================

    1.DBCC CHECKIDENT에서

    DBCC CHECKIDENT에서

    DBCC CHECKIDENT ( table_name, RESEED, new_reseed_value )
    

    그래서,이는 비어 있거나 잘린 테이블 것으로 예상된다.

  2. ==============================

    2.당신이 다시 시드 값을 전달하면 DB는 새로운 가치의 정체성을 시작합니다 :

    당신이 다시 시드 값을 전달하면 DB는 새로운 가치의 정체성을 시작합니다 :

    DBCC CHECKIDENT (SyncSession, RESEED, 0); --next record should be 0 + increment
    

    당신이 IDENTITY (A, B)를하지 않는 경우가 대신 사용됩니다, 비록 값을 전달할 필요가 없습니다 :

    DBCC CHECKIDENT (SyncSession, RESEED); --next record should be the seed value 'a'
    

    이 테이블 가까이 초기 생성 된 상태로 떠날 때 이것은 일반적으로 더 나은 방법입니다.

  3. ==============================

    3.당신이 제로 (시드) ID 값을 변경 한 이후이 논리적인가?

    당신이 제로 (시드) ID 값을 변경 한 이후이 논리적인가?

    DBCC CHECKIDENT (SyncSession, reseed, 1)
    

    신원 열을 시드, 그리고 확실히 첫 번째 새 레코드가 1로 시작하는 것이라고 할 것입니다.

  4. ==============================

    4.나는 DB를 수정 한 후 백업에서 복원, 같은 문제가 있습니다. 난 그냥 더미 레코드를 추가하고 삭제 ... 다음 0으로 설정 RESEED가 작동하는 것 같다.

    나는 DB를 수정 한 후 백업에서 복원, 같은 문제가 있습니다. 난 그냥 더미 레코드를 추가하고 삭제 ... 다음 0으로 설정 RESEED가 작동하는 것 같다.

  5. ==============================

    5.이 시도

    이 시도

    DECLARE @c TABLE (TanvtechId varchar(10),NewTanvtechId Varchar(10))
    INSERT INTO @c
    SELECT TanvtechId , Row_Number() OVER (ORDER BY TanvtechId ) from Tanvtech 
    
    UPDATE G
    SET G.TanvtechId =a.NewTanvtechId 
    FROM Tanvtech as G INNER JOIN @c as a ON a.TanvtechId =G.TanvtechId 
    
  6. ==============================

    6.

    DBCC CHECKIDENT ( Table_Name, RESEED, 0 )
    

    이 후, 제로 (0)와 ID를 시작 테이블의 모든 행을 삭제하고 다시 테이블에 데이터 등을 넣어하는 방법입니다.

  7. from https://stackoverflow.com/questions/724668/sql-server-identity-column-values-start-at-0-instead-of-1 by cc-by-sa and MIT license