Heim >Datenbank >MySQL-Tutorial >Wie füge ich einer vorhandenen SQL Server-Spalte eine Identitätseigenschaft hinzu?
Hinzufügen einer Identität zu einer vorhandenen SQL Server-Spalte: Zwei Methoden
Das direkte Hinzufügen einer Identitätseigenschaft zu einer vorhandenen Spalte in SQL Server ist keine einfache Aufgabe. In diesem Artikel werden zwei Methoden beschrieben, um dies zu erreichen, jede mit ihren eigenen Kompromissen:
Methode 1: Erstellen einer neuen Tabelle mit Identität
Diese Methode bewahrt vorhandene Daten.
<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>
Methode 2: Hinzufügen einer neuen Identitätsspalte und Ersetzen der alten
Bei diesem Ansatz werden nicht vorhandene Daten in der neuen Identitätsspalte beibehalten.
<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>
Wichtige Überlegungen:
Denken Sie daran, alle Fremdschlüsseleinschränkungen zu berücksichtigen, die mit der ursprünglichen Primärschlüsselspalte verknüpft sind, bevor Sie eine der beiden Methoden implementieren. Andernfalls kommt es zu Datenbankfehlern.
Ausführlichere Informationen und Fehlerbehebung finden Sie in diesem Microsoft SQL Server-Forenthread:
https://www.php.cn/link/16dd8c942ad630be7e5a12b681b3f5c4
Das obige ist der detaillierte Inhalt vonWie füge ich einer vorhandenen SQL Server-Spalte eine Identitätseigenschaft hinzu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!