Ich möchte Tabellen in SQL Server 2008 erstellen, weiß jedoch nicht, wie ein zusammengesetzter Primärschlüssel erstellt wird. Wie kann ich das erreichen?
Ich möchte Tabellen in SQL Server 2008 erstellen, weiß jedoch nicht, wie ein zusammengesetzter Primärschlüssel erstellt wird. Wie kann ich das erreichen?
Antworten:
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])
)
Über Enterprise Manager (SSMS) ...
Um die SQL sehen Sie dann einen Rechtsklick auf die Table
> Script Table As
>Create To
Für 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)
)
AKTUALISIEREN
Ich sollte hinzufügen!
Wenn Sie Fremd- / Primärschlüssel hinzufügen möchten, die sich ändern, sollten Sie zuerst die Schlüssel mit Einschränkungen erstellen, da Sie sonst keine Änderungen vornehmen können. Wie folgt:
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)
)
Eigentlich ist der letzte Weg gesünder und serieller. Sie können die FK / PK-Einschränkungsnamen anzeigen (dbo.dbname> Keys> ..). Wenn Sie jedoch keine Einschränkung verwenden, erstellt MSSQL automatisch zufällige FK / PK-Namen. Sie müssen sich jede Änderung (Tabelle ändern) ansehen, die Sie benötigen.
Ich empfehle Ihnen, einen Standard für sich selbst zu setzen. Die Einschränkung sollte gemäß Ihrem Standard definiert werden. Sie müssen sich nicht merken und müssen nicht zu lange nachdenken. Kurz gesagt, Sie arbeiten schneller.
Erstellen Sie zuerst die Datenbank und die Tabelle und fügen Sie die Spalten manuell hinzu. In welcher Spalte Primärschlüssel sein soll. Sie sollten mit der rechten Maustaste auf diese Spalte klicken, den Primärschlüssel festlegen und den Startwert des Primärschlüssels festlegen.
So erstellen Sie einen zusammengesetzten eindeutigen Schlüssel für die Tabelle
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])
)