J'ai mis en place une table qui n'a actuellement pas de clé primaire. Tout ce que j'ai à faire, c'est d'ajouter un primary key, no null, auto_increment
.
Je travaille avec une base de données Microsoft SQL Server
. Je comprends que cela ne peut pas être fait en une seule commande, mais chaque commande que j’essaie renvoie toujours des erreurs de syntaxe.
modifier ---------------
J'ai créé la clé primaire et l'ai même définie comme non nulle. Cependant, je ne peux pas configurer le auto_increment
.
J'ai essayé:
ALTER TABLE tableName MODIFY id NVARCHAR(20) auto_increment
ALTER TABLE tableName ALTER COLUMN id NVARCHAR(20) auto_increment
ALTER TABLE tableName MODIFY id NVARCHAR(20) auto_increment
ALTER TABLE tableName ALTER COLUMN id NVARCHAR(20) auto_increment
J'utilise NVARCHAR
parce que cela ne me permettait pas de définir NOT NULL
sous int
Cela peut être fait en une seule commande. Vous devez définir la propriété IDENTITY pour "numéro automatique":
ALTER TABLE MyTable ADD mytableID int NOT NULL IDENTITY (1,1) PRIMARY KEY
Plus précisément, pour définir une contrainte de niveau de table nommée:
ALTER TABLE MyTable
ADD MytableID int NOT NULL IDENTITY (1,1),
CONSTRAINT PK_MyTable PRIMARY KEY CLUSTERED (MyTableID)
Voir ALTER TABLE et IDENTITY sur MSDN
Si la table contient déjà des données et que vous souhaitez modifier l'une des colonnes en identité:
Commencez par créer une nouvelle table comportant les mêmes colonnes et spécifiez la clé primaire-kolumn:
create table TempTable
(
Id int not null identity(1, 1) primary key
--, Other columns...
)
Copiez ensuite toutes les lignes de la table d'origine dans la nouvelle table à l'aide d'une instruction standard insert
-.
Ensuite, déposez la table d'origine.
Et enfin, renommez TempTable
comme vous voulez en utilisant sp_rename
:
Vous pouvez également effectuer cette action via SQL Server Management Studio.
Faites un clic droit sur la table sélectionnée -> Modifier
Faites un clic droit sur le champ que vous souhaitez définir comme PK -> Définir la clé primaire
Sous Propriétés de la colonne, définissez "Spécification d'identité" sur Oui, puis spécifiez la valeur de départ et la valeur d'incrément.
Ensuite, si vous voulez pouvoir écrire simplement ce genre de chose, vous pouvez cliquer avec le bouton droit sur la table que vous venez de modifier et sélectionner
"SCRIPT TABLE AS" -> CRÉER VERS
afin que vous puissiez voir par vous-même la syntaxe correcte pour effectuer cette action.
Si vous avez la colonne, c'est très facile.
En utilisant le concepteur, vous pouvez définir la colonne comme une identité (1,1): clic droit sur la table → conception → en partie à gauche (clic droit) → propriétés → dans les colonnes d’identité, sélectionnez # colonne.
Propriétés :
Colonne d'identité :
Dans SQL Server 2008: