본문 바로가기

IT프로그래밍

[MSSQL]IDENTITY_INSERT가 OFF로 설정되면 테이블 'tableName'의 ID 열에 명시적 값을 삽입할 수 없습니다.

MSSQL 정보 저장소

 

 

 

IDENTITY_INSERT가 OFF로 설정되면 테이블 ''의 ID 열에 명시적 값을 삽입할 수 없습니다.

MSSQL 에러!

 

원인

테이블의 컬럼 중 자동 증가값 설정이 되어 있는 컬럼에 데이터를 Insert하려고 할때 발생!

 


해결법

방법 1. 컬럼 자동증가 해제

에러가 발생한 테이블 오른쪽 클릭 - 디자인

컬럼들중 에러가 발생한 컬럼 선택 => 보통 index에 해당 설정을 주는 경우가 많음

ID 사양 : 예

로 되어 있는 컬럼의 ID 사양 오른쪽의 화살표 클릭

 

표시된 부분 중 ID 예로 되어 있는 것을 아니오로 변경

 

컨트롤 + s 를 눌러서 저장

값이 들어가는 것을 확인


 


방법 2. IDENTITY_INSERT ON/OFF 조정 ( 이 방법을 추천)

SET IDENTITY_INSERT tableName ON  --을 통해서 삽입을 허용 시키고

데이터삽입 쿼리 실행

SET IDENTITY_INSERT tableName ON --을 통해서 원복

 

tableName = 적용할 테이블 명,

 

저는 OCSPatientInformation 테이블을 예제로 테스트 하였습니다.

 

SET IDENTITY_INSERT OCSPatientInformation ON  --을 통해서 삽입을 허용 시키고

데이터삽입 쿼리 실행

SET IDENTITY_INSERT OCSPatientInformation OFF  --을 통해서 원복

 

 

오류 없이 데이터 삽입 완료!