Je souhaite créer des tables dans SQL Server 2008, mais je ne sais pas comment créer une clé primaire composite. Comment puis-je atteindre cet objectif?
create table my_table (
column_a integer not null,
column_b integer not null,
column_c varchar(50),
primary key (column_a, column_b)
);
CREATE TABLE UserGroup
(
[User_Id] INT NOT NULL,
[Group_Id] INT NOT NULL
CONSTRAINT PK_UserGroup PRIMARY KEY NONCLUSTERED ([User_Id], [Group_Id])
)
Via Enterprise Manager (SSMS) ...
Pour voir le code SQL, vous pouvez ensuite cliquer avec le bouton droit de la souris sur la Table
> Script Table As
> Create To
Je sais que je suis en retard à cette fête, mais pour une table existante, essayez:
ALTER table TABLE_NAME
ADD CONSTRAINT [name of your PK, e.g. PK_TableName] PRIMARY KEY CLUSTERED (column1, column2, etc.)
Pour MSSQL Server 2012
CREATE TABLE usrgroup(
usr_id int FOREIGN KEY REFERENCES users(id),
grp_id int FOREIGN KEY REFERENCES groups(id),
PRIMARY KEY (usr_id, grp_id)
)
UPDATE
Je devrais ajouter!
Si vous souhaitez ajouter des clés étrangères/principales à modifier, vous devez tout d'abord créer les clés avec des contraintes ou vous ne pouvez pas apporter de modifications. Comme ceci ci-dessous:
CREATE TABLE usrgroup(
usr_id int,
grp_id int,
CONSTRAINT FK_usrgroup_usrid FOREIGN KEY (usr_id) REFERENCES users(id),
CONSTRAINT FK_usrgroup_groupid FOREIGN KEY (grp_id) REFERENCES groups(id),
CONSTRAINT PK_usrgroup PRIMARY KEY (usr_id,grp_id)
)
En fait, le dernier moyen est plus sain et en série. Vous pouvez consulter les noms des contraintes FK/PK (nombo.bdd> Touches> ..) , mais si vous n'utilisez pas de contrainte, MSSQL crée automatiquement noms aléatoires FK/PK. Vous aurez besoin de regarder chaque changement (alter table) dont vous avez besoin.
Je vous recommande de définir une norme pour vous-même; la contrainte doit être définie selon votre standard. Vous n'aurez pas à mémoriser et vous n'aurez pas à réfléchir trop longtemps. En bref, vous travaillez plus vite.
Commencez par créer la base de données et la table en ajoutant manuellement les colonnes. Dans quelle colonne doit être la clé primaire. Vous devez cliquer avec le bouton droit de la souris sur cette colonne, définir la clé primaire et définir la valeur initiale de la clé primaire.