'IDENTITY_INSERT가 OFF로 설정된 경우 테이블의 ID 열에 대한 명시 적 값을 삽입 할 수 없음'오류를 수정하는 방법은 무엇입니까?



문제를 제거하기 위해 도구를 사용해보십시오

기본 키 열은 SQL Server 데이터베이스를 구성 할 때 종종 자동 증가로 설정됩니다. 이를 수행하기 위해 기본 키 열에 IDENTITY 한계가 설정됩니다. 시작 위치와 증분 단계는 매개 변수로 IDENTITY 열에 전송됩니다. 그런 다음 새 레코드가 추가되고 ID 삽입이 OFF로 설정 될 때마다 IDENTITY 열의 값이 사전 정의 된 단계만큼 일반적으로 숫자만큼 증가합니다. 또한 IDENTITY INSERT 속성은 단일 세션의 한 테이블에 대해서만 ON으로 설정됩니다.



이 기사에서는 오류에 대해 설명합니다. “테이블의 ID 열에 대한 명시 적 값을 삽입 할 수 없습니다.

IDENTITY_INSERT가 OFF로 설정된 경우” 아래 그림과 같이.



'IDENTITY INSERT OFF'를 설정하고 'PRIMARY KEY ID'가없는 데이터를 insert 문에 삽입



사용자가 'identity_insert'를 'OFF'로 설정하면 오류가 발생합니다. 그런 다음 테이블의 기본 키 열에 명시 적으로 데이터를 삽입하려고합니다. 아래 예를 사용하여 설명 할 수 있습니다.

데이터베이스 및 테이블 생성 :

먼저 'appuals'라는 데이터베이스를 만듭니다.

'appuals'라는 데이터베이스를 생성합니다.



다음 코드를 사용하여 'person'이라는 테이블을 만듭니다. a를 사용하여 테이블 구축 '기본 키 ID'

CREATE TABLE 사람 (ID INT IDENTITY (1, 1), first_name VARCHAR (MAX), last_name VARCHAR (MAX))

'person'이라는 이름의 테이블 만들기

“identity_insert off | 의 위에':

그만큼 “identity_insert 끄기 | 의 위에' 이 오류를 해결하는 데 도움이됩니다. 이 문에 대한 올바른 구문은 다음과 같습니다.

SET IDENTITY_INSERT. .
의 위에

첫 번째 인수는 테이블이있는 데이터베이스의 이름입니다. 두 번째 인수는 ID 값을 설정해야하는 해당 테이블이 속한 스키마입니다. 의 위에 또는 떨어져서 . 세 번째 주장

ID 열이있는 테이블입니다.

기본적으로 오류없이 테이블에 데이터를 삽입하는 두 가지 방법이 있습니다. 이는이 오류에 대한 해결책으로 간주되며 아래에서 설명합니다.

오류 1 : identity_insert OFF 설정

첫 번째 경우에는 데이터를 테이블에 삽입합니다. 'IDENTITY INSERT' 로 설정 '떨어져서' . 따라서 ID가 INSERT 문에 있으면 오류가 발생합니다. “IDENTITY_INSERT가 OFF로 설정된 경우 'person'테이블의 ID 열에 대한 명시 적 값을 삽입 할 수 없습니다.”

쿼리 탭에서 다음 코드를 실행합니다.

identity_insert 사람을 끕니다. person (ID, first_name, last_name) 값 (3, 'Sadia