복붙노트

[SQL] 방법에 2008 SQL Server를 사용하여 해제 IDENTITY_INSERT를 켭니다?

SQL

방법에 2008 SQL Server를 사용하여 해제 IDENTITY_INSERT를 켭니다?

이유는 IDENTITY_INSERT가 OFF로 설정되어있을 때 삽입을하는 오류는 무엇입니까?

어떻게 2008 SQL 서버에서 제대로 전원을 켜합니까? 그것은 SQL Server Management Studio를 사용하여인가?

나는이 쿼리를 실행 한 :

SET IDENTITY_INSERT Database. dbo. Baskets ON

그럼 난 명령 (들)이 성공적으로 완료되었는지 콘솔에 메시지 등을 얻었다. 나는 응용 프로그램을 실행할 때, 여전히 나에게 아래와 같은 오류를 제공합니다 :

Cannot insert explicit value for identity column in table 'Baskets' when 
IDENTITY_INSERT is set to OFF.

해결법

  1. ==============================

    1.MSDN에 따라 통해 SQL

    MSDN에 따라 통해 SQL

    SET IDENTITY_INSERT sometableWithIdentity ON
    
    INSERT INTO sometableWithIdentity 
        (IdentityColumn, col2, col3, ...)
    VALUES 
        (AnIdentityValue, col2value, col3value, ...)
    
    SET IDENTITY_INSERT sometableWithIdentity OFF
    

    전체 오류 메시지가 정확히 어떤 문제가 알려줍니다 ...

  2. ==============================

    2.나는 그것이 나 심지어 IDENTITY_INSERT ON을 설정 한 후 삽입을 허용하지 않는 문제가 있었다.

    나는 그것이 나 심지어 IDENTITY_INSERT ON을 설정 한 후 삽입을 허용하지 않는 문제가 있었다.

    문제는 내가 열 이름을 지정하지 않았다이었고, 어떤 이유로 그것을하지 그것을 좋아했다.

    INSERT INTO tbl Values(vals)
    

    그래서 기본적으로 전체 INSERT INTO의 TBL을 (COLS) 값 (발스)

  3. ==============================

    3.수입: 당신은 INSERT 문에 열을 작성해야합니다

    수입: 당신은 INSERT 문에 열을 작성해야합니다

    INSERT INTO TABLE
    SELECT * FROM    
    

    올바르지 않습니다.

    Insert into Table(Field1,...)
    Select (Field1,...) from TABLE
    

    맞다

  4. ==============================

    4.나는이 이전 스레드 알고 있지만 난 그냥이 부딪쳤다. 사용자가 다른 세션을 설정 IDENTITY_INSERT ON 후 ID 열에서 삽입을 실행하려는 경우, 그는 위의 오류를 얻을 수밖에 없다.

    나는이 이전 스레드 알고 있지만 난 그냥이 부딪쳤다. 사용자가 다른 세션을 설정 IDENTITY_INSERT ON 후 ID 열에서 삽입을 실행하려는 경우, 그는 위의 오류를 얻을 수밖에 없다.

    아이디 삽입 값을 설정 및 후속 삽입 DML 명령은 동일한 세션에서 실행할 수 있습니다.

    여기 @Beginner 별도로 신원 삽입 ON을 설정 한 후 자신의 응용 프로그램에서 삽입을 실행. 그는 오류 아래있어 이유입니다 :

    Cannot insert explicit value for identity column in table 'Baskets' when 
    IDENTITY_INSERT is set to OFF.
    
  5. ==============================

    5.이렇게하면 기본 키 필드가 있고 중복되는 값을 삽입하거나 당신이 할 수있는 INSERT_IDENTITY 플래그가 설정되어있을 때 가능성이 높습니다

    이렇게하면 기본 키 필드가 있고 중복되는 값을 삽입하거나 당신이 할 수있는 INSERT_IDENTITY 플래그가 설정되어있을 때 가능성이 높습니다

  6. ==============================

    6.그것은 ON 세트 IDENTITY_INSERT의 Database.dbo.Baskets을 넣을 필요가 보인다; 모든 SQL INSERT 전에 일괄 전송.

    그것은 ON 세트 IDENTITY_INSERT의 Database.dbo.Baskets을 넣을 필요가 보인다; 모든 SQL INSERT 전에 일괄 전송.

    당신은 하나의 SET IDENTITY_INSERT ... ON 시작 몇 INSERT ... VALUES ... 명령을 보낼 수있다; 처음에 문자열입니다. 그냥 사이에 배치 구분을 두지 않습니다.

    다음 SET IDENTITY_INSERT가 ... ON이 전송 블록 후 작동을 멈 춥니 다 내가 왜 몰라 (예을 위해 : C #에서 .ExecuteNonQuery을 ()). 내가 SET IDENTITY_INSERT를 넣어했다 ... ON; 다시 다음 SQL 명령 문자열의 시작 부분에.

  7. ==============================

    7.당신은 당신이 신원 삽입을 설정 한 후 명령 '이동'을 추가해야합니다. 예:

    당신은 당신이 신원 삽입을 설정 한 후 명령 '이동'을 추가해야합니다. 예:

    SET IDENTITY_INSERT sometableWithIdentity ON
    go
    
    INSERT sometableWithIdentity (IdentityColumn, col2, col3, ...)
    VALUES (AnIdentityValue, col2value, col3value, ...)
    
    SET IDENTITY_INSERT sometableWithIdentity OFF
    go
    
  8. from https://stackoverflow.com/questions/7063501/how-to-turn-identity-insert-on-and-off-using-sql-server-2008 by cc-by-sa and MIT license