SQL Server 2008: IDENTITY_INSERT를 사용하여 ID 열 삽입 관리
SQL Server 데이터베이스에서는 ID 열에 값을 수동으로 삽입해야 하는 상황이 발생합니다. 하지만 IDENTITY_INSERT
은 기본적으로 비활성화되어 있어 직접 삽입이 불가능합니다.
IDENTITY_INSERT
OFF 오류 이해
IDENTITY_INSERT
가 OFF로 설정된 ID 열에 값을 삽입하려고 하면 다음 오류가 발생합니다.
IDENTITY_INSERT가 OFF로 설정된 경우 'TableName' 테이블의 ID 열에 명시적 값을 삽입할 수 없습니다.
SQL Server가 고유한 ID 값을 자동으로 관리하기 때문입니다. IDENTITY_INSERT
이 OFF이면 데이터베이스는 ID 열이 비어 있을 것으로 예상하여 다음 순차 값을 할당할 수 있습니다.
SSMS(SQL Server Management Studio)를 사용하여 IDENTITY_INSERT
활성화
SSMS의 특정 테이블에 대해 IDENTITY_INSERT
을 활성화하려면:
<tablename>
을 테이블 이름으로 바꿉니다.<code class="language-sql">SET IDENTITY_INSERT <tablename> ON;</code>
IDENTITY_INSERT
비활성화하는 것을 잊지 마세요.T-SQL 직접 사용
T-SQL 내에서 직접 IDENTITY_INSERT
을 관리할 수도 있습니다.
<code class="language-sql">SET IDENTITY_INSERT sometableWithIdentity ON; INSERT INTO sometableWithIdentity (IdentityColumn, col2, col3, ...) VALUES (AnIdentityValue, col2value, col3value, ...); SET IDENTITY_INSERT sometableWithIdentity OFF;</code>
자세한 오류 메시지
오류 메시지는 문제 식별에 도움이 되는 영향을 받는 테이블을 지정합니다. 예:
<code>Cannot insert explicit value for identity column in table 'Baskets' when IDENTITY_INSERT is set to OFF.</code>
IDENTITY_INSERT
을 일시적으로 활성화하면 ID 열 값을 제어할 수 있습니다. 데이터베이스 무결성과 순차적 ID 생성을 유지하려면 나중에 항상 비활성화하세요.
위 내용은 제어된 ID 열 삽입을 위해 SQL Server 2008에서 IDENTITY_INSERT를 활성화 및 비활성화하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!