programing

아이덴티티_INSERT가 OFF로 설정되었습니다. - 어떻게 켜시겠습니까?

cafebook 2023. 4. 19. 00:21
반응형

아이덴티티_INSERT가 OFF로 설정되었습니다. - 어떻게 켜시겠습니까?

삭제된 파일의 ID를 저장하는 삭제된 파일 아카이브 데이터베이스가 있습니다.관리자가 파일을 복원할 수 있도록 하고 싶습니다(또한 파일 링크용 ID도 같음).identity_insert를 테이블 전체에서 삭제하는 것은 바람직하지 않습니다.하나의 인크리먼트가 효과적이기 때문입니다.에의 삽입으로TBL_Content스토어 프로시저 이런 게 있어요

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
SET IDENTITY_INSERT tbl_content ON
GO

ALTER procedure [dbo].[spInsertDeletedIntoTBLContent]
@ContentID int, 
...insert command...
SET IDENTITY_INSERT tbl_content OFF

하지만 동일한 오류가 계속 발생합니다.

ID_인 경우 'TBL_Content' 테이블의 ID 열에 대한 명시적 값을 삽입할 수 없습니다.INSERT가 OFF로 설정되어 있습니다.

도움이 필요하신가요?

저장 프로시저 내에서 ID 삽입을 on으로 설정해야 합니까?저장 프로시저를 변경할 때만 설정되며 실제로 호출할 때는 설정되지 않습니다.시험:

ALTER procedure [dbo].[spInsertDeletedIntoTBLContent]
@ContentID int, 

SET IDENTITY_INSERT tbl_content ON

...insert command...

SET IDENTITY_INSERT tbl_content OFF
GO

나는 그것이 단일 질의 일괄 처리로 이루어져야 한다고 생각한다.기본적으로 GO 스테이트먼트가 명령어를 여러 배치로 분할하고 있기 때문에 문제가 발생합니다.다음과 같이 변경합니다.

SET IDENTITY_INSERT tbl_content ON
/* GO */

...insert command...

SET IDENTITY_INSERT tbl_content OFF
GO

아이덴티티를 설정해야 하는 거 아니야?ON, 레코드 삽입 후 다시 끄시겠습니까?

다음과 같이 합니다.

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
SET IDENTITY_INSERT tbl_content ON
GO

ALTER procedure [dbo].[spInsertDeletedIntoTBLContent]
@ContentID int, 
SET IDENTITY_INSERT tbl_content ON
...insert command...
SET IDENTITY_INSERT tbl_content OFF

상기시키는 것

SQL Server는 하나의 테이블만 ID_를 가질 수 있습니다.INSERT 속성이 ON으로 설정되었습니다.

이것은 동작하지 않습니다.

SET IDENTITY_INSERT TableA ON
SET IDENTITY_INSERT TableB ON
... INSERT ON TableA ...
... INSERT ON TableB ...
SET IDENTITY_INSERT TableA OFF
SET IDENTITY_INSERT TableB OFF

대신:

SET IDENTITY_INSERT TableA ON
... INSERT ON TableA ...
SET IDENTITY_INSERT TableA OFF
SET IDENTITY_INSERT TableB ON
... INSERT ON TableB ...
SET IDENTITY_INSERT TableB OFF

쿼리 위에 이 행을 추가합니다.

SET IDENTITY_INSERT tbl_content ON

참고 자료: http://technet.microsoft.com/en-us/library/aa259221%28v=sql.80%29.aspx

내 테이블 이름은Genre의 3열과 함께Id,Name그리고.SortOrder

사용한 코드는 다음과 같습니다.

SET IDENTITY_INSERT Genre ON

INSERT INTO Genre(Id, Name, SortOrder)VALUES (12,'Moody Blues', 20) 

세트도 추가

 SET IDENTITY_INSERT Genre ON

    INSERT INTO Genre(Id, Name, SortOrder)VALUES (12,'Moody Blues', 20) 

    SET IDENTITY_INSERT Genre  OFF

두 개의 다른 테이블이 있었는데 첫 번째 테이블은 정상적으로 동작하지만 두 번째 테이블은 ID 삽입에 대해 이 예외가 발생합니다.문제는 테이블이 위조 키로 입력되지 않은 필드를 가지고 있다는 것입니다.

언급URL : https://stackoverflow.com/questions/3112579/identity-insert-is-set-to-off-how-to-turn-it-on

반응형