본문 바로가기

Programming/MS-SQL

[MS-SQL] SET IDENTITY_INSERT


오늘 하려다 보니까 갑자기 이런 에러가 발생했다.


테이블 A에 있는 ID열의 명시적 값은 열 목록이 상요되고 IDENTITY_INSERT 가 ON일 때만 지정할 수 있습니다.


이 메세지가 나오는 이유는 추측이지만 이런것 같다.

INSERT ... SELECT 사용 시 TABLE 명 뒤에 컬럼 정의를 안하면 발생하는 에러로 보인다.

따라서 INSERT ... SELECT 사용 시에는 반드시 컬럼명을 명시해줘야만 에러가 발생하지 않는다.


그리고 INSERT ... SELECT 하기 전에
SET IDENTITY_INSERT 테이블명 ON 또는 SET IDENTITY_INSERT 테이블명 OFF
적절히 사용해줘야만 문제 없이 입력될 것이다.


SET IDENTITY_INSERT 테이블명 ON 은 인덱스를 수동으로 입력 가능하게 하는 명령이고,

SET IDENTITY_INSERT 테이블명 OFF 은 인덱스를 자동으로 입력 가능하게 하는 명령이다.