본문 바로가기

DBMS/SQL Server

[SQL Server] IDENTITY 속성의 열은 고유할까?

 

IDENTITY 속성은 초기값 및 증가값을 기반으로 생성된다.

그렇다면 IDENTITY 속성의 열은 고유할까?

 

PRIMARY KEY 또는 UNIQUE 제약조건을 사용하여야 고유성은 보장된다.

위 제약조건을 설정하지 않고 중복된 데이터가 삽입되는지 확인해보자.

 

 -- 테이블 생성

 CREATE TABLE TEST_IDENTITY (

        COL1       INT            IDENTITY (1,1)

      , COL2       INT

 )

 GO

 

 -- 데이터 삽입

 INSERT INTO TEST_IDENTITY (COL2) VALUES (1)

 INSERT INTO TEST_IDENTITY (COL2) VALUES (2)

 INSERT INTO TEST_IDENTITY (COL2) VALUES (3)

 INSERT INTO TEST_IDENTITY (COL2) VALUES (4)

 GO

 

 -- 데이터 확인

 SELECT * FROM TEST_IDENTITY

 GO

 

 

 -- 명시적 값을 테이블의 IDENTITY 열에 삽입할 있게 설정

 SET IDENTITY_INSERT TEST_IDENTITY ON

 GO

 

 -- 중복된 IDENTITY 삽입

 INSERT INTO TEST_IDENTITY (COL1, COL2) VALUES (2, 5)

 GO

 

 -- 데이터 확인

 SELECT * FROM TEST_IDENTITY

 GO