Sql Server

Identity속성을 가진 컬럼이 존재하는 테이블의 Insert into Select

지오준 2021. 12. 15. 12:22
반응형

일반적인 서로 다른 서버에서 같은테이블을 복사하는 과정에서는 Insert into Select문만으로 테이블 데이터를 조회해서 복사가 가능합니다.

insert into 테이블명
Select * From 서버명.dbo.테이블명

예외로 Identity속성의 컬럼이 포함된 테이블은 일반적인 Insert into Select문을 실행시키면 에러가 발생합니다.

An explicit value for the identity column in table '테이블명' 
can only be specified when a column list is used and IDENTITY_INSERT is ON.

하지만 테이블 설정과 컬럼을 모두 쿼리에 포함시키면 복사가 정상적으로 이뤄집니다.

SET IDENTITY_INSERT 테이블명 ON;
INSERT INTO 테이블명 (모든컬럼을 설정) 
select (모든컬럼을 설정) from 서버.dbo.테이블명;
SET IDENTITY_INSERT 테이블명 OFF;

 

반응형