sql数据库两个外键做联合主键

sql数据库问题。如何在一个表中用两个外键约束做主键?sql语句怎么写?... sql数据库问题。如何在一个表中用两个外键约束做主键?sql语句怎么写? 展开
 我来答
loveyurui
2009-10-27 · TA获得超过6556个赞
知道大有可为答主
回答量:2892
采纳率:33%
帮助的人:982万
展开全部
联合主键是有着特殊的需求的。
建表的时候创建
Create Table 表名 (字段名1 Int Not Null,
字段名2 nvarchar(13) Not Null Primary Key (字段名1, 字段名2),
字段名3…………
字段名N………… )
或者
建表之后修改表结构
ALTER TABLE 表名 WITH NOCHECK ADD
CONSTRAINT [PK_表名] PRIMARY KEY NONCLUSTERED
(
[字段名1],
[字段名2]
)

参考资料: http://hi.baidu.com/raoyao/blog/item/bf08a918a3362a0f35fa4136.html

學有止境
2009-10-27 · TA获得超过194个赞
知道答主
回答量:143
采纳率:0%
帮助的人:0
展开全部
lz的说法有误
主键不能建立在外键约束上,但是它可以建立在外键约束对应的列上。
所以你要做的就是对两个外键约束对应的列加复合主键

ALTER TABLE 表名 WITH NOCHECK ADD
CONSTRAINT [PK_表名] PRIMARY KEY NONCLUSTERED
(
[字段名1],
[字段名2]
)

-----------------------------------
zjwssg解元同学

外键约束对应的列也可以是唯一键哎
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zjwssg
2009-10-27 · TA获得超过1232个赞
知道答主
回答量:441
采纳率:0%
帮助的人:242万
展开全部
楼上的,你说“主键不能建立在外键约束上,但是它可以建立在外键约束对应的列上。
”这不仅仅是可以而已吧,应该是外键约束对应的列它必然得是主键吧

----
学有止境 - 初入江湖 四级
受教了,哈哈,谢谢解答。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
549265480
2009-10-27 · 超过63用户采纳过TA的回答
知道小有建树答主
回答量:286
采纳率:0%
帮助的人:281万
展开全部
create table student1
(
s1id int not null identity,
sname varchar(100),
primary key aid
)
create table student2
(
s2id int not null identity,
sname varchar(100),
primary key aid
)
create table course
(
cid int not null identity,
s1id int not null,
s2id int not null,
cname varchar(100),
primary key (cid),
foreign key s1id references student1(s1id),
foreign key s2id references student2(s2id)
)

create table ccc
(
s1id int not null,
s2id int not null,
primary key(s1id,s2id)
)

就这样 ,但是感觉没什么意义
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式