Gan*_*thy 161 sql sql-server-2008
我想在SQL Server 2008中创建表,但我不知道如何创建复合主键.我怎样才能做到这一点?
Thi*_*ilo 229
create table my_table (
column_a integer not null,
column_b integer not null,
column_c varchar(50),
primary key (column_a, column_b)
);
Run Code Online (Sandbox Code Playgroud)
Mat*_*ott 165
CREATE TABLE UserGroup
(
[User_Id] INT NOT NULL,
[Group_Id] INT NOT NULL
CONSTRAINT PK_UserGroup PRIMARY KEY NONCLUSTERED ([User_Id], [Group_Id])
)
Run Code Online (Sandbox Code Playgroud)
kev*_*ers 48
通过企业管理器(SSMS)......
看到那么你可以右键点击该SQL Table> Script Table As>Create To
Ray*_* K. 28
我知道我参加这个派对已经迟到了,但对于现有的桌子,请尝试:
ALTER table TABLE_NAME
ADD CONSTRAINT [name of your PK, e.g. PK_TableName] PRIMARY KEY CLUSTERED (column1, column2, etc.)
Run Code Online (Sandbox Code Playgroud)
Fat*_*can 23
对于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)
)
Run Code Online (Sandbox Code Playgroud)
UPDATE
我应该加!
如果要更改这些外键/主键,首先应使用约束创建,否则无法进行更改.如下所示;
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)
)
Run Code Online (Sandbox Code Playgroud)
实际上,最后一种方式更健康,更连续.您可以查看FK/PK约束名称(dbo.dbname> Keys> ..)但是如果不使用约束,MSSQL会自动创建随机FK/PK名称.您需要查看所需的每个更改(更改表).
我建议您为自己设置一个标准,并且应该根据您的标准定义约束.你不必记住,你不必考虑太久.简而言之,你工作得更快.
| 归档时间: |
|
| 查看次数: |
309248 次 |
| 最近记录: |