Heim > Datenbank > MySQL-Tutorial > Wie kann ich einer vorhandenen SQL Server-Tabelle mit Daten eine Identitätsspalte hinzufügen?

Wie kann ich einer vorhandenen SQL Server-Tabelle mit Daten eine Identitätsspalte hinzufügen?

Patricia Arquette
Freigeben: 2025-01-22 23:01:11
Original
436 Leute haben es durchsucht

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

Identitätsspalten zu vorhandenen SQL Server-Tabellen hinzufügen

Problem: Sie müssen einer SQL Server-Tabelle, die bereits Daten enthält, eine Identitätsspalte hinzufügen. Das direkte Ändern einer vorhandenen Spalte in eine Identität wird nicht unterstützt.

Lösungen:Es gibt zwei Methoden, um dies zu erreichen:

Methode 1: Erstellen Sie eine neue Tabelle

Diese Methode bewahrt vorhandene Daten. Eine neue Tabelle wird mit der Identitätsspalte erstellt, Daten werden kopiert und die alte Tabelle wird ersetzt.

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>
Nach dem Login kopieren

Methode 2: Fügen Sie eine neue Identitätsspalte hinzu

Dieser Ansatz fügt eine neue Identitätsspalte hinzu, entfernt den alten Primärschlüssel und benennt die neue Spalte um. Hinweis: Vorhandene Daten in der ursprünglichen Primärschlüsselspalte werden nicht beibehalten.

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>
Nach dem Login kopieren

Wichtige Überlegungen:

  • Backups: Sichern Sie immer Ihre Daten, bevor Sie Schemaänderungen durchführen.
  • Transaktionen: Erwägen Sie, diese Vorgänge aus Gründen der Atomizität in eine Transaktion einzuschließen.
  • Testen:Testen Sie diese Änderungen gründlich in einer Entwicklungs- oder Staging-Umgebung, bevor Sie sie in der Produktion anwenden.
  • Datenverlust: Methode 2 führt zu Datenverlust in der ursprünglichen Primärschlüsselspalte. Wählen Sie die geeignete Methode basierend auf Ihren Datenanforderungen.

Diese Informationen bieten eine prägnantere und optimierte Erklärung des Originaltextes, während die Kernbedeutung und das Bild erhalten bleiben.

Das obige ist der detaillierte Inhalt vonWie kann ich einer vorhandenen SQL Server-Tabelle mit Daten eine Identitätsspalte hinzufügen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage