Maison > base de données > tutoriel mysql > Comment ajouter une propriété d'identité à une colonne SQL Server existante ?

Comment ajouter une propriété d'identité à une colonne SQL Server existante ?

Patricia Arquette
Libérer: 2025-01-22 23:22:11
original
913 Les gens l'ont consulté

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

Ajout d'une identité à une colonne SQL Server existante : deux méthodes

Ajouter directement une propriété d'identité à une colonne existante dans SQL Server n'est pas une tâche simple. Cet article présente deux méthodes pour y parvenir, chacune avec ses propres compromis :

Méthode 1 : Créer une nouvelle table avec identité

Cette méthode préserve les données existantes.

<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>
Copier après la connexion

Méthode 2 : Ajouter une nouvelle colonne d'identité et remplacer l'ancienne

Cette approche ne pas conserve les données existantes dans la nouvelle colonne d'identité.

<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>
Copier après la connexion

Considérations importantes :

N'oubliez pas de traiter toutes les contraintes de clé étrangère liées à la colonne de clé primaire d'origine avant d'implémenter l'une ou l'autre méthode. Ne pas le faire entraînera des erreurs de base de données.

Pour des informations plus détaillées et un dépannage, consultez ce fil de discussion sur le forum Microsoft SQL Server :

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal