急,sqlserver外键问题【高分】

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了急,sqlserver外键问题【高分】相关的知识,希望对你有一定的参考价值。

CREATE TABLE tBSC(
BID int NOT NULL identity,
BSCNAME varchar(120) NULL,
DIAL_NUM varchar(20) NULL,
DIALED_NUM varchar(40) NULL,
PRIMARY KEY CLUSTERED (BID),
)

CREATE TABLE tMONITOR(
MID int NOT NULL identity,
MONITORLOC varchar(120) NOT NULL,
MONITORNUM varchar(20) NULL,
BSCNAME varchar(40) NULL,
MONITORTEL varchar(20) NULL,
PRIMARY KEY CLUSTERED (MID),
FOREIGN KEY (BSCNAME) REFERENCES tBSC (BSCNAME)
)

第二段执行时报错:

在被引用表 'tBSC' 中没有与外键 'FK__tMONITOR__BSCNAM__656C112C' 中的引用列列表匹配的主键或候选键。
如果把BSCNAME设为主键就没有问题,为什么不是主键设不了外键约束呢?有这么一说吗?应该怎么做

FOREIGN KEY (BSCNAME) REFERENCES tBSC (BSCNAME)

你引用tBSC的BSCNAME 但是那个列不是主键
所以外键约束也无法建立

外键引用的字段 必须是主键
参考技术A 从表中的外键必须是主表的主键。
FOREIGN KEY (X) REFERENCES tBSC (Y)
“Y”必须是主键
而且“X”和“Y”的数据类型要相同
参考技术B 外键必须是其他表的主键 参考技术C 一张表的外键 必然是另一张表的主键,就这个原理,就象房子有了一层才能有二层一样 参考技术D 这个是硬性的规定 第5个回答  2009-12-03 不是主键设不了外键约束

以上是关于急,sqlserver外键问题【高分】的主要内容,如果未能解决你的问题,请参考以下文章

sql server 中如何查询学生表中每位学生全部科目中最高分对应的那行数据呢? 急急急 !

高分求解SQL题目 急!!!

sqlserver 修改某张表某字段 排序规则;sqlserver 少量中文 问号?;sqlserver 生僻字;sqlserver 少量中文乱码;sqlserver COLLATE用法;sqlser

高分,急求教电脑和网络高手??

高分求助:js缓存问题,急!

【高分,急!】linux下字符编码转换问题