Database/RDBMS

[MSSQL] DBCC CHECKIDENT란 무엇일까?

JeongKyun 2021. 11. 23.
반응형

DBCC CHECKIDENT 명령어에 대한 정리이다.

 

해당 명령어는 identity(자동증가열)을 초기화시키는데 목적이 있다.

 

사용 방법은 아래의 예제와 같다.

-- 입력한 테이블에서의 IDENTITY 값 확인
DBCC CHECKIDENT('[테이블명]', NORESEED)

-- IDENTITY 값 변경 (IDENTITY값이 500으로 변경된다.)
DBCC CHECKIDENT('[테이블명]', RESEED, 500)

-- IDENTITY 값 초기화 (IDENTITY값을 0으로 초기화 시킨다.)
DBCC CHECKIDENT('[테이블명]', RESEED, 0)

위의 예제처럼 identity의 값을 확인 및 수정할 수 있다.

 

보통 언제 쓰이냐면 --

 

Truncate 테이블을 삭제하면 Identity값이 알아서 초기화가 되는데, Delete Identity의 값이 초기화가 안된다.

근데 쿼리를 돌리다보면 Truncate로 테이블 행을 삭제할 때 FK 제약조건이 걸려있으면 사용하질 못하는데 이럴때 Delete로 해당 행을 삭제시켜주고 dbcc checkident로 identity의 값을 초기화 시키는 방법도 있다.

 

(정리 : Truncate를 FK 제약조건 참조로 실행 안됨 -> 전체 행 Delete + dbcc checkident 실행)

 

truncate와 delete의 차이점은 해당 링크를 들어가서 확인할 수있다.

 

 

 

댓글

💲 많이 본 글