> 데이터 베이스 > MySQL 튜토리얼 > 데이터가 포함된 기존 SQL Server 테이블에 ID 열을 추가하려면 어떻게 해야 합니까?

데이터가 포함된 기존 SQL Server 테이블에 ID 열을 추가하려면 어떻게 해야 합니까?

Patricia Arquette
풀어 주다: 2025-01-22 23:01:11
원래의
394명이 탐색했습니다.

How Can I Add an Identity Column to an Existing SQL Server Table with Data?

기존 SQL Server 테이블에 ID 열 추가

문제: 이미 데이터가 포함된 SQL Server 테이블에 ID 열을 추가해야 합니다. 기존 열을 ID로 직접 변경하는 것은 지원되지 않습니다.

해결책: 이를 달성하기 위한 두 가지 방법이 있습니다.

방법 1: 새 테이블 만들기

이 방법은 기존 데이터를 보존합니다. ID 열을 사용하여 새 테이블이 생성되고 데이터가 복사되며 이전 테이블이 교체됩니다.

T-SQL:

<code class="language-sql">CREATE TABLE dbo.Tmp_Names (
    Id INT NOT NULL IDENTITY(1, 1),
    Name VARCHAR(50) NULL
) ON [PRIMARY]
GO

SET IDENTITY_INSERT dbo.Tmp_Names ON
GO

IF EXISTS (SELECT * FROM dbo.Names)
    INSERT INTO dbo.Tmp_Names (Id, Name)
    SELECT Id, Name FROM dbo.Names TABLOCKX
GO

SET IDENTITY_INSERT dbo.Tmp_Names OFF
GO

DROP TABLE dbo.Names
GO

EXEC sp_rename 'Tmp_Names', 'Names'</code>
로그인 후 복사

방법 2: 새 ID 열 추가

이 접근 방식은 새 ID 열을 추가하고 이전 기본 키를 제거하며 새 열의 이름을 바꿉니다. 참고: 원래 기본 키 열의 기존 데이터는 보존되지 않습니다.

T-SQL:

<code class="language-sql">ALTER TABLE Names
ADD Id_new INT IDENTITY(1, 1)
GO

ALTER TABLE Names DROP COLUMN ID
GO

EXEC sp_rename 'Names.Id_new', 'ID', 'COLUMN'</code>
로그인 후 복사

중요 고려 사항:

  • 백업: 스키마 변경을 수행하기 전에 항상 데이터를 백업하세요.
  • 트랜잭션: 원자성을 위해 이러한 작업을 트랜잭션으로 래핑하는 것을 고려해 보세요.
  • 테스트: 이러한 변경 사항을 프로덕션에 적용하기 전에 개발 또는 스테이징 환경에서 철저히 테스트하세요.
  • 데이터 손실: 방법 2를 사용하면 원래 기본 키 열의 데이터가 손실됩니다. 데이터 요구사항에 따라 적절한 방법을 선택하세요.

본 정보는 핵심 의미와 이미지를 유지하면서 원문에 대한 보다 간결하고 간결한 설명을 제공합니다.

위 내용은 데이터가 포함된 기존 SQL Server 테이블에 ID 열을 추가하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿