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의 차이점은 해당 링크를 들어가서 확인할 수있다.
반응형
'Database > RDBMS' 카테고리의 다른 글
[MSSQL] 서브쿼리(SubQuery)란 무엇일까? / 특징 / 종류 / 예제 (0) | 2021.11.28 |
---|---|
[MSSQL] INSERT문의 기본적인 3가지 사용법 (0) | 2021.11.26 |
[MSSQL] TRUNCATE vs DELETE 차이점 (0) | 2021.11.23 |
[MSSQL] 프로시저 전체 삭제 쿼리 (0) | 2021.11.17 |
[MSSQL] DB에 접속한 사용자 수 조회 (0) | 2021.11.17 |
댓글