IT/프로그래밍 관련

MSSQL - IDENTITY 값 초기화 하기

KSI 2011. 6. 24. 22:31

[MSSQL - IDENTITY 값 초기화 하기 ]

아래와 같이 테이블을 생성하였다면 seq 컬럼은 자동 증가값을 가지게 됩니다. 

USE testOK
CREATE TABLE [dbo].[tbl_test] (
[seq] [int] IDENTITY(1,1) PRIMARY KEY NOT NULL,
[Name] [varchar] (70) NOT NULL,
[Email] [char] (70) NOT NULL, 
[Idate] [datetime] NOT NULL 
)
GO


개발과정에서 테스트 후에 데이터를 모두 삭제(DELETE)해도 seq 컬럼은 초기화 되지 않습니다.
IDENTITY 컬럼의 값을 초기화 하기 위해서는 아래와 같이 DBCC 명령어를 사용하세요.


-- IDENTITY 값 초기화하기

-- 사용법 ) DBCC CHECKIDENT([테이블명], reseed, [초기화 시킬 값])

DBCC CHECKIDENT(tbl_test, reseed, 0)


위의 명령어를 쿼리분석기에서 실행시키면 identity 값이 1로 초기화 됩니다. 


단순히 현재 ID값을 재 설정하지 않고, 컬럼의 값과 ID 값만 확인하기 위해서는 아래와 같이 입력하면 됩니다.

-- 사용법 ) DBCC CHECKIDENT([테이블명], noreseed )

DBCC CHECKIDENT(tbl_test, noreseed )

위에 명령어 실행결과 현재 ID값과 컬럼의 값이 일치하지 않을 경우 아래와 같이 조정하면 됩니다. ( 초기값이 입력된
데이터를 임으로 삭제하고 IDENTITY 값을 초기화 하면 ID값과 컬럼값이 일치하지 않습니다. ID값이 초기화 되었기
때문에 컬럼값보다 작게 나옵니다.

-- 사용법 ) DBCC CHECKIDENT([테이블명], reseed )

DBCC CHECKIDENT(tbl_test, reseed )

명령어를 위와 같이 입력하면 ID값이 현재의 컬럼 값보다 작을 경우 ID값을 현재의 컬럼값과 같게 재 설정합니다.


출처: 웹마당넷(webmadang@webmadang.net)   http://www.webmadang.net