Sql Server

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

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

일반적인 서로 다른 서버에서 같은테이블을 복사하는 과정에서는 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;

 

반응형

댓글