codememo

IDENTITY_ 설정INSERT ON이 작동하지 않습니다.

tipmemo 2023. 8. 1. 20:34
반응형

IDENTITY_ 설정INSERT ON이 작동하지 않습니다.

테이블을 복사하고 싶습니다.Equipment하나의 데이터베이스에서MyDBQA테스트 데이터베이스로MyDB테이블에 기본 키(null이 아닌 int)인 ID 열이 있습니다.

하지만 오류가 발생했습니다.

Msg 8101, 레벨 16, 상태 1, 라인 2
'MyDB.dbo' 테이블의 ID 열에 대한 명시적 값입니다.Equipment'는 열 목록이 사용되고 IDENTITY_인 경우에만 지정할 수 있습니다.INSERT가 켜져 있습니다.

내 대본:

SET IDENTITY_INSERT [MyDB].[dbo].[Equipment] ON
INSERT INTO [MyDB].[dbo].[Equipment]  SELECT * FROM [MyDBQA].[dbo].[Equipment]
SET IDENTITY_INSERT [MyDB].[dbo].[Equipment] OFF

메시지에 표시된 대로 열 목록이 누락되었을 수 있습니다.

SET IDENTITY_INSERT [MyDB].[dbo].[Equipment] ON

INSERT INTO [MyDB].[dbo].[Equipment]
            (COL1,
             COL2)
SELECT COL1,
       COL2
FROM   [MyDBQA].[dbo].[Equipment]

SET IDENTITY_INSERT [MyDB].[dbo].[Equipment] OFF 

오류 메시지의 관련 부분은 다음과 같습니다.

...when a column list is used...

열 목록을 사용하지 않고 사용 중입니다.SELECT *대신 열 목록을 사용합니다.

SET IDENTITY_INSERT [MyDB].[dbo].[Equipment] ON 

INSERT INTO [MyDB].[dbo].[Equipment] (Col1, Col2, ...)
SELECT Col1, Col2, ... FROM [MyDBQA].[dbo].[Equipment] 

SET IDENTITY_INSERT [MyDB].[dbo].[Equipment] OFF 

VB 코드에서, 제출하려고 할 때INSERT쿼리, 다음과 같은 동일한 '쿼리 비쿼리'로 이중 쿼리를 제출해야 합니다.

sqlQuery = "SET IDENTITY_INSERT dbo.TheTable ON; INSERT INTO dbo.TheTable (Col1, COl2) VALUES (Val1, Val2); SET IDENTITY_INSERT dbo.TheTable OFF;"

제가 사용한 것입니다.;구분 기호를 입력합니다.

나한테 효과가 있어요.늦었지만 효율적입니다!

다음은 SET IDITY_ 사용에 대한 Microsoft의 설명입니다.INSERT - 나처럼 삭제된 레코드를 원래 ID 열 값을 유지하면서 재생성할 때 이 게시물을 발견한 다른 사용자에게 도움이 될 수 있습니다.

삭제된 레코드를 원래 ID 열 값으로 재생성하려면 http://msdn.microsoft.com/en-us/library/aa259221(v=sql.80).aspx

언급URL : https://stackoverflow.com/questions/12006273/set-identity-insert-on-is-not-working

반응형