안규 공부방

MS-SQL > 기존 컬럼을 IDENTITY 속성으로 변경하기

등록일 : 2019-09-04 19:47 조회수 : 92,916

CREATE TABLE DBO.TMP_TBL1(
COL1 INT NOT NULL IDENTITY (1, 1),
COL2 DATETIME NULL)
ON [PRIMARY]
 
GO
 
ALTER TABLE DBO.TMP_TBL1 SET (LOCK_ESCALATION = TABLE)
 
GO
 
SET IDENTITY_INSERT DBO.TMP_TBL1 ON
 
GO
 
IF EXISTS(SELECT * FROM DBO.TBL1)
        EXEC('INSERT INTO DBO.TMP_TBL1 (COL1, COL2)
        SELECT COL1, COL2 FROM DBO.TBL1 WITH (HOLDLOCK TABLOCKX)')
 
GO
 
SET IDENTITY_INSERT DBO.TMP_TBL1 OFF
 
GO
 
DROP TABLE DBO.TBL1
 
GO
 
EXECUTE SP_RENAME N'DBO.TMP_TBL1', N'TBL1', 'OBJECT'


기존에 데이터가 들어가 있는 identity 칼럼을 쿼리를 통해 (Alter Table) 바로 속성을 변경하는 방법은 없습니다.

아래와 같은 방식으로 가능합니다.

1.Tmp_TBL1을 만들고
2.TBL1의 데이터를 Tmp_TBL1에 부어 넣은 다음
3.기존 TBL1은 DROP 하고
4.Tmp_TBL1의 이름을 수정하는 것이었습니다.


 
※ 혹시 도움이 되셨다면 댓글에 한마디 남겨주세요!
작성자   비밀번호
자동글 방지     (자동글 방지 기능입니다.)
내용   댓글달기 
이메일 문의 : cak0280@nate.com  
Copyright 2000 By ENTERSOFT.KR All Rights Reserved.