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>
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>
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!