SQL基础题出了点问题,跪求
USE MyLibrary
GO
CREATE TABLE Cards
(CardNo varchar(30) PRIMARY KEY,
Name varchar(50),
Workorg varchar(100),
IdCard varchar(50),
CreateDate datetime,
FOREIGN KEY TypeId REFERENCES CardType(Id),
Status varchar(20) CHECK(Status IN('有效','挂失','注销'))
表CardType我已经创建好了,但是我在分析器里边将以上代码复制里边运行一直不行,跪求高手,求解。。。谢谢了。嘎嘎。
GO
CREATE TABLE Cards
(CardNo varchar(30) PRIMARY KEY,
Name varchar(50),
Workorg varchar(100),
IdCard varchar(50),
CreateDate datetime,
FOREIGN KEY TypeId REFERENCES CardType(Id),
Status varchar(20) CHECK(Status IN('有效','挂失','注销'))
表CardType我已经创建好了,但是我在分析器里边将以上代码复制里边运行一直不行,跪求高手,求解。。。谢谢了。嘎嘎。
作者: hualishiri 发布时间: 2011-06-12
报什么错,嘎嘎。
作者: zy112429 发布时间: 2011-06-12
这个错,嘎嘎,
服务器: 消息 170,级别 15,状态 1,行 8
第 8 行: 'TypeId' 附近有语法错误。
服务器: 消息 170,级别 15,状态 1,行 8
第 8 行: 'TypeId' 附近有语法错误。
作者: hualishiri 发布时间: 2011-06-12
表CardType已经创建好了。。。。
作者: hualishiri 发布时间: 2011-06-12
SQL code
CREATE TABLE Cards ( CardNo VARCHAR(30) PRIMARY KEY, Name VARCHAR(50), Workorg VARCHAR(100), IdCard VARCHAR(50), CreateDate DATETIME, TypeId INT FOREIGN KEY REFERENCES CardType(Id), Status VARCHAR(20) CHECK(Status IN('有效','挂失','注销')) )
作者: xiaoliaoyun 发布时间: 2011-06-12
引用楼主 hualishiri 的回复:
USE MyLibrary
GO
CREATE TABLE Cards
(CardNo varchar(30) PRIMARY KEY,
Name varchar(50),
Workorg varchar(100),
IdCard varchar(50),
CreateDate datetime,
FOREIGN KEY TypeId REFERENCES CardType……
USE MyLibrary
GO
CREATE TABLE Cards
(CardNo varchar(30) PRIMARY KEY,
Name varchar(50),
Workorg varchar(100),
IdCard varchar(50),
CreateDate datetime,
FOREIGN KEY TypeId REFERENCES CardType……
由于数据库先执行创建表语句,所以创建表当然没问题。
至于为啥会报错,原因很简单。你的TypedId不是Cards表的字段,而是另外一个表的字段。
要建立外键的引用关系,必须在另外一个表里使用
FOREIGN KEY TypeId REFERENCES CardType(Id),
楼主,你搞清楚了表间的关系没?
作者: patrickjiang 发布时间: 2011-06-12
SQL code
CREATE TABLE Cards (CardNo varchar(30) PRIMARY KEY, Name varchar(50), Workorg varchar(100), IdCard varchar(50), CreateDate datetime, TypeId int FOREIGN KEY REFERENCES CardType(Id), Status varchar(20) CHECK(Status IN('有效','挂失','注销')) )
作者: yyoinge 发布时间: 2011-06-12
简单地说,就是你的TypeId对Cards表来说,是个未定义的字段,所以当然会报错了
作者: patrickjiang 发布时间: 2011-06-12
报什么错误
作者: rucypli 发布时间: 2011-06-12