如何在SQL Server 2008中创建复合主键


176

我想在SQL Server 2008中创建表,但是我不知道如何创建复合主键。我该如何实现?


1
当您是asp.net的新手时,请注意以下几点:复合主键是一件坏事,通常表明它的设计思想欠佳
smirkingman 2010年

47
@smirkingman可以解决非常重要的问题,通常几乎只能使用复合主键。例如,当您有成千上万的用户将行保存为单个表/实体类型时。您希望按用户ID排序的行加上第二个值。您的价值判断完全不正确,如果不是,我们将很快淘汰此功能。
尼古拉斯·彼得森

Answers:


242
create table my_table (
     column_a integer not null,
     column_b integer not null,
     column_c varchar(50),
     primary key (column_a, column_b)
);

2
像@ matthew-abbott的示例一样,使用主键CONSTRAINT之间有什么区别?
mateuscb 2011年

28
它创建了一个可以通过名称删除/更新的命名约束
longhairsi 2012年

14
不太正确。两者都创建“命名约束”。仅仅是前者,您无法控制命名。但是创建后,您可以查找使用的名称,并按名称删除/更新...
Auspex
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.