Voglio creare tabelle in SQL Server 2008, ma non so come creare una chiave primaria composita. Come posso raggiungere questo obiettivo?
Voglio creare tabelle in SQL Server 2008, ma non so come creare una chiave primaria composita. Come posso raggiungere questo obiettivo?
Risposte:
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])
)
Tramite Enterprise Manager (SSMS) ...
Per vedere la SQL si può quindi fare clic destro sul Table
> Script Table As
>Create To
Per 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)
)
AGGIORNARE
Dovrei aggiungere!
Se si desidera aggiungere la modifica di chiavi esterne / primarie, innanzitutto è necessario creare le chiavi con vincoli o non è possibile apportare modifiche. In questo modo di seguito:
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)
)
In realtà l'ultimo modo è più sano e seriale. Puoi guardare i nomi dei vincoli FK / PK (dbo.dbname> Keys> ..) ma se non usi un vincolo, MSSQL crea automaticamente nomi FK / PK casuali. Dovrai esaminare ogni modifica (modifica tabella) di cui hai bisogno.
Ti consiglio di stabilire uno standard per te stesso; il vincolo deve essere definito in base allo standard. Non dovrai memorizzare e non dovrai pensare troppo a lungo. In breve, lavori più velocemente.
Innanzitutto crea il database e la tabella, aggiungendo manualmente le colonne. In quale colonna deve essere la chiave primaria. È necessario fare clic con il pulsante destro del mouse su questa colonna e impostare la chiave primaria e impostare il valore seed della chiave primaria.
Per creare una chiave univoca composita sulla tabella
ALTER TABLE [TableName] ADD UNIQUE ([Column1], [Column2], [column3]);
CREATE TABLE UserGroup
(
[User_Id] INT Foreign Key,
[Group_Id] INT foreign key,
PRIMARY KEY ([User_Id], [Group_Id])
)