Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menambahkan Harta Identiti pada Lajur Pelayan SQL Sedia Ada?

Bagaimana untuk Menambahkan Harta Identiti pada Lajur Pelayan SQL Sedia Ada?

Patricia Arquette
Patricia Arquetteasal
2025-01-22 23:22:11908semak imbas

How to Add an Identity Property to an Existing SQL Server Column?

Menambah Identiti pada Lajur Pelayan SQL Sedia Ada: Dua Kaedah

Menambah secara langsung sifat identiti pada lajur sedia ada dalam SQL Server bukanlah tugas yang mudah. Artikel ini menggariskan dua kaedah untuk mencapai matlamat ini, setiap satu dengan pertukaran sendiri:

Kaedah 1: Mencipta Jadual Baharu dengan Identiti

Kaedah ini mengekalkan data sedia ada.

<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>

Kaedah 2: Menambah Lajur Identiti Baharu dan Menggantikan Lajur Lama

Pendekatan ini tidak mengekalkan data sedia ada dalam lajur identiti baharu.

<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>

Pertimbangan Penting:

Ingat untuk menangani sebarang kekangan kunci asing yang dikaitkan dengan lajur kunci utama asal sebelum melaksanakan mana-mana kaedah. Kegagalan berbuat demikian akan mengakibatkan ralat pangkalan data.

Untuk maklumat lebih terperinci dan penyelesaian masalah, rujuk urutan forum Microsoft SQL Server ini:

https://www.php.cn/link/16dd8c942ad630be7e5a12b681b3f5c4

Atas ialah kandungan terperinci Bagaimana untuk Menambahkan Harta Identiti pada Lajur Pelayan SQL Sedia Ada?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn