RDBMS

MSSQL - IDENTITY 값 초기화

크라우니 2021. 7. 12. 12:26

우리가 테이블을 생성하고 

 IDENTITY을 지정하게 되는데 (ex. ID) 순차적으로 값이 증가해서 Index를 만들기는 편하지만

 

Data를 삭제하는경우 ID값의 증가량이 그대로 유지가 되어서 곤란한경우가 생기는데

이때 이를 해결하기 위해서 아래 쿼리로 해결 할 수있다. 

 

1. 현재 ID값 확인 

   DBCC CHECKIDENT(<<TABLE_NAME>>, NORESEED)

2. DBCC CHECKIDENT(<<TABLE_NAME>>, RESEED, <<SEED No.>>)
  SEED No. 에 내가 시작하고 싶은 identity의 값을 입력하면 된다. 

  만약 0으로 초기화 하고싶다면 SEED No.에 0을 입력해준다.

 

3. 사용 예 

(1) 이미 데이터가 90번까지 차있는 상태에서 10개 항목을 추가한다

(2) 방금 추가한 10개 항목을 지운다.

(3) DBCC CHECKIDENT(<<TABLE_NAME>>, NORESEED) 이용 IDentity값 확인

(4) 101

(5) DBCC CHECKIDENT(<<TABLE_NAME>>, RESEED, 90)

  --> 입력한 숫자의 +1부터 인덱스가 생성됨으로 주의

(6) 91번부터 Data가 생성된다.