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'
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'
Considérations importantes :
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!