日期:2014-05-18  浏览次数:21638 次

很急的一个问题哈,为什么引用了表中的无效列
在做图书馆管理系统,我建立了两张表:(用的是SQLSERVER,所以不区分大小写!)
CREATE   TABLE   borrowBooksHistory(
num   int   not   null   primary   key,/*纪录单的数字标号,唯一的,做主键用*/
readerIDNum   char(8)     NULL,/*借书证*/
××××××××
);
CREATE   TABLE   readerInfo(/*读者注册信息*/
readerlDNum     char(8)     not   null   primary   key,/*借书证号码*/
××××××
);

想建立外健关系:
alter   table   borrowBooksHistory   add   constraint   FK_borrowBooksHistory_readerInfo_1   foreign   key(readerIDNum)
references   readerInfo(readerIDNum)/*借阅表里面的借书证号码引用读者注册信息表*/

结果总是显示这个错误》》》》》》》》》》》》》
服务器:   消息   1770,级别   16,状态   1,行   1
外键   'FK_borrowBooksHistory_readerInfo_1 '   引用了位于被引用表   'readerInfo '   中的无效列   'readerIDNum '。
《《《《《《《《《《《《《《《《《《《《《《《

我查看这两   个表的基本信息都是正确的啊,都已经把这个属性raderIDum加进去了的啊,为什么会这样的啊???我建立的其他的borrowHistory的约束都是可以的啊,这个就是不行??怎么回事???



------解决方案--------------------
--try

ALTER TABLE [dbo].[borrowBooksHistory] ADD
CONSTRAINT [FK_borrowBooksHistory_readerInfo_1] FOREIGN KEY
(
[readerIDNum]
) REFERENCES [dbo].[readerInfo] (
[readerlDNum]
)
GO
------解决方案--------------------
readerIDNum char(8) NULL,/*借书证*/ --你这里是id


readerlDNum char(8) not null primary key,/*借书证号码*/ --你这里是ld

i 和l 是不一样的
------解决方案--------------------
楼主笔误导致这个低级错误 :)