Maison > base de données > tutoriel mysql > Comment puis-je ajouter une colonne d'identité à une table SQL Server existante avec des données ?

Comment puis-je ajouter une colonne d'identité à une table SQL Server existante avec des données ?

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

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

Ajout de colonnes d'identité aux tables SQL Server existantes

Problème : Vous devez ajouter une colonne d'identité à une table SQL Server qui contient déjà des données. La modification directe d'une colonne existante pour devenir une identité n'est pas prise en charge.

Solutions : Deux méthodes existent pour y parvenir :

Méthode 1 : Créer une nouvelle table

Cette méthode préserve les données existantes. Une nouvelle table est créée avec la colonne d'identité, les données sont copiées et l'ancienne table est remplacée.

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

Méthode 2 : ajouter une nouvelle colonne d'identité

Cette approche ajoute une nouvelle colonne d'identité, supprime l'ancienne clé primaire et renomme la nouvelle colonne. Remarque : Les données existantes dans la colonne de clé primaire d'origine ne seront pas conservées.

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

Considérations importantes :

  • Sauvegardes : Sauvegardez toujours vos données avant d'effectuer des modifications de schéma.
  • Transactions : Pensez à envelopper ces opérations dans une transaction pour l'atomicité.
  • Test : Testez minutieusement ces modifications dans un environnement de développement ou de test avant de les appliquer à la production.
  • Perte de données : La méthode 2 entraîne une perte de données dans la colonne de clé primaire d'origine. Choisissez la méthode appropriée en fonction de vos besoins en données.

Ces informations fournissent une explication plus concise et simplifiée du texte original, tout en conservant le sens principal et en préservant l'image.

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