消息 102,级别 15,状态 1,第 1 行 ' ' 附近有语法错误。怎么改正
(
bookid varchar(20) primary key,
bookname varchar(30) Not null,
bookstyleno varchar(30) Not null,
bookauthor varchar(30),
bookpub varchar(30) ,
bookpubdate datetime,
bookindate datetime ,
isborrowed varchar (2) ,
foreign key (bookstyleno) references book_style (bookstyleno)
) 展开
改成foreign key (bookstyleno) references system_books(bookstyleno)
消息 1776,级别 16,状态 0,第 1 行
在被引用表 'system_books' 中没有与外键 'FK__system_bo__books__7F60ED59' 中的引用列列表匹配的主键或候选键。
消息 1750,级别 16,状态 0,第 1 行
无法创建约束。请参阅前面的错误消息。
你把和这个表有关联的以及这个表全部先删掉,然后再执行这个看看
(
bookid varchar(20) primary key,
bookname varchar(30) Not null,
bookstyleno varchar(30) Not null,
bookauthor varchar(30),
bookpub varchar(30) ,
bookpubdate datetime,
bookindate datetime ,
isborrowed varchar (2) ,
foreign key (bookstyleno) references #system_books (bookstyleno)
)
select * from #system_books
drop table #system_books
谢谢,但是我是要建表,要保存起来的。
create table system_books
(
bookid varchar(20) primary key,
bookname varchar(30) Not null,
bookstyleno varchar(30) FOREIGN KEY REFERENCES book_style (bookstyleno),
bookauthor varchar(30),
bookpub varchar(30) ,
bookpubdate datetime,
bookindate datetime ,
isborrowed varchar (2)
)
先看标注的错误提示:
列 'book_style.bookstyleno' 的长度或小数位数与外键 'FK__system_bo__books__29572725' 中的引用列 'system_books.bookstyleno' 的长度或小数位数不同。参与构造外键关系的列必须定义为具有同一长度和小数位数。
看加粗部分对照下创建的第一个表book_style
create table book_style
(
bookstyleno varchar(20) primary key,
bookstyle varchar(30) not null
)
create table system_books
(
bookid varchar(20) primary key,
bookname varchar(30) Not null,
bookstyleno varchar(30) Not null,
bookauthor varchar(30),
bookpub varchar(30) ,
bookpubdate datetime,
bookindate datetime ,
isborrowed varchar (2) ,
foreign key (bookstyleno) references book_style (bookstyleno)
)
看出不同没有?把30改为20就行了