sqlserver中如何把联合主键中的一个主键设置为另一表的外键

create table Course
(
CNO varchar(12) primary key(CNO,TNO),
CNAME nvarchar(20),
TNO varchar(12) references Teacher(TNO)
)
create table Score
(
SNO varchar(12) references Student(SNO),
CNO varchar(12) references Course(CNO) ,
DEGREE int,
)
当创建Score表示创建不了,
图片说明

2个回答

明明是语法不对的问题。以上是伪代码(教材讲解用的)

qq_27843481
回老家看看你 不是语法问题........
大约 5 年之前 回复

外键需要主键或者该列定义的是UNIQUE 方式
Course的CNO不具备这两个特征,所以报错了。
另外DEGREE int,最后多了一个逗号

qq_27843481
回老家看看你 那该怎么办?如果只设置CNO为主键,但是因为CNO的值有重复(一门课程可以由多个老师教),所以不行,用了组合键;如果不设置主键,也不行因为这样无法成为外键。是不是(TNO,CNO)为组合键,CNO就不能成为外键?
大约 5 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐