主键不能建立在外键约束上,但是它可以建立在外键约束对应的列上。
所以你要做的就是对两个外键约束对应的列加复合主键
ALTER
TABLE
表名
WITH
NOCHECK
ADD
CONSTRAINT
[PK_表名]
PRIMARY
KEY
NONCLUSTERED
(
[字段名1],
[字段名2]
)
-----------------------------------
zjwssg解元同学
外键约束对应的列也可以是唯一键哎
设置默认值alter
table
<表名>
add
<列名>
<默认值类型>
default
'<默认值>'
设置主键
alter
table
<表名>
add
constraint
<主键名>
primary
key(<列名>)
设置联合主键
alter
table
<表名>
add
constraint
<主键名>
primary
key(<列名1>,<列名2>,...,<列名n>)
约束
alter
table
<表名>
add
constraint
<约束名>
check
(<约束语句>)
在输入语句的时候<>是不需要的
altertable
表
add
constraint
pk_name
primary
key
(列1,列2,...)
联合主键的好处是不需要因为需要主键而增加一个无用的主键列
例如如果不用联合主键你必须增加个列ID设置主键
但这个ID列无任何作用
至于在什么情况下使用,就像刚才举例的,当你这个表的主键ID无任何用处,那么就用联合主键好了,你可以节约一个列的空间,但如果这表的ID列要做为别的表的外键的话,就不能用联合主键了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)