본문 바로가기

DBMS/SQL Server

[SQL Server] 강제로 IDENTITY 값 입력하기

 

IDENTITY 속성을 테이블에 지정하면 자동으로 증가하는 값을 입력해준다.

자주 삭제되는 테이블에 ID 열이 있는 경우 ID 값 사이에 간격이 생길 수 있다.

기존 간격을 채우려면 SET IDENTITY_INSERT 를 ON으로 설정하고 명시적 값을 테이블의 ID 열에

삽입할 수 있다.

 

 CREATE TABLE TEST_TBL (

    ID INT IDENTITY NOT NULL PRIMARY KEY

  , NAME VARCHAR(10)

  , AGE INT

 )

 GO

 

 INSERT INTO TEST_TBL(NAME, AGE) VALUES ('한효주', 27), ('배수지', 20)

                                      , ('한지민', 32), ('구하라', 23)

 

 -- 데이터 확인

 SELECT * FROM TEST_TBL

 

 

 -- 데이터 삭제

 DELETE TEST_TBL WHERE ID = 2

 

 -- 데이터 확인

 SELECT * FROM TEST_TBL

 

 

 -- 데이터 삽입 (실패)

 INSERT INTO TEST_TBL(ID, NAME, AGE) VALUES (2, '배수지', 20)

 

 -- SET IDENTITY_INSERT ON으로 설정

 SET IDENTITY_INSERT TEST_TBL ON

 

 -- 데이터 삽입 (성공)

 INSERT INTO TEST_TBL(ID, NAME, AGE) VALUES (2, '배수지', 20)

 

 -- 데이터 확인

 SELECT * FROM TEST_TBL