>데이터 베이스 >MySQL 튜토리얼 >제어된 ID 열 삽입을 위해 SQL Server 2008에서 IDENTITY_INSERT를 활성화 및 비활성화하는 방법은 무엇입니까?

제어된 ID 열 삽입을 위해 SQL Server 2008에서 IDENTITY_INSERT를 활성화 및 비활성화하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2025-01-09 08:57:41817검색

How to Enable and Disable IDENTITY_INSERT in SQL Server 2008 for Controlled Identity Column Insertions?

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을 활성화하려면:

  1. 대상 테이블이 포함된 데이터베이스를 마우스 오른쪽 버튼으로 클릭하세요.
  2. '새 쿼리'를 선택하세요.
  3. 다음 T-SQL 명령을 실행하고 <tablename>을 테이블 이름으로 바꿉니다.
<code class="language-sql">SET IDENTITY_INSERT <tablename> ON;</code>
  1. 실행 후 데이터를 삽입하세요. 나중에 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.