>데이터 베이스 >MySQL 튜토리얼 >SQL Server에서 ID 열을 어떻게 재설정하거나 수정할 수 있습니까?

SQL Server에서 ID 열을 어떻게 재설정하거나 수정할 수 있습니까?

Linda Hamilton
Linda Hamilton원래의
2025-01-07 13:51:441049검색

How Can I Reset or Modify Identity Columns in SQL Server?

SQL Server에서 ID 열 재설정: 심층 탐색

ID 열 업데이트는 SQL Server 데이터베이스에서 어려운 작업인 경우가 많습니다. 다른 열과 달리 ID 열은 생성 후 수정되도록 설계되지 않았습니다. 그러나 시작 값이 너무 크거나 관련 테이블과 충돌하는 경우와 같이 이 조정이 필요할 수 있는 시나리오가 있습니다.

제한 사항: ID 열의 변경할 수 없는 특성

UPDATE 문을 사용하여 ID 열 값을 직접 업데이트할 수 없다는 점에 유의하는 것이 중요합니다. 이는 각 행의 고유한 순차 번호를 보장하기 위해 데이터베이스 엔진에서 ID 열을 자동으로 생성하고 제어하기 때문입니다.

ID 열 수정 대안

불가능에도 불구하고 ID 열을 직접 업데이트하기 위해 SQL Server는 유사한 결과를 얻을 수 있는 여러 가지 방법을 제공합니다. 접근 방식의 선택은 특정 시나리오와 요구 사항에 따라 다릅니다.

1. DBCC CHECKIDENT: 새 레코드에 대한 ID 값 재설정

DBCC CHECKIDENT는 테이블의 현재 ID 값을 확인하고 잠재적으로 재설정할 수 있는 유틸리티 명령입니다. 기존 행에 영향을 주지 않고 새로 삽입된 레코드의 시작 값을 조정해야 할 때 사용할 수 있습니다. 구문은 다음과 같습니다.

DBCC CHECKIDENT('tableName', RESEED, NEW_RESEED_VALUE)

2. IDENTITY_INSERT: 기존 레코드의 ID 값 업데이트

IDENTITY_INSERT는 ID 열에 값을 명시적으로 삽입할 수 있는 테이블 수준 옵션입니다. 이를 통해 기존 레코드의 ID 열 값을 수정할 수 있습니다. 구문은 다음과 같습니다.

SET IDENTITY_INSERT YourTable {ON|OFF}

IDENTITY_INSERT를 ON으로 설정하면 지정된 ID 열 값이 있는 레코드를 삽입할 수 있습니다. 레코드가 삽입되면 원래 행을 삭제할 수 있습니다(외래 키 제약 조건이 충족되는지 확인).

IDENTITY_INSERT 사용 예

SET IDENTITY_INSERT YourTable ON
INSERT INTO YourTable(IdentityCol, otherCol) VALUES(13,'myValue')
DELETE FROM YourTable WHERE ID=3
SET IDENTITY_INSERT YourTable OFF

주의하는 것이 중요합니다. 신중하게 사용하지 않으면 데이터 무결성이 손상될 수 있으므로 IDENTITY_INSERT를 사용할 때

위 내용은 SQL Server에서 ID 열을 어떻게 재설정하거나 수정할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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