用SQL语言建立约束关系出错

来源:百度知道 编辑:UC知道 时间:2024/06/14 14:09:20
在MSSQL2K下的~
对于SQL只了解查询插入删除更新什么的~
所以请高人帮忙看看~
CREATE TABLE tblFile(FileID BIGINT not null,FileName varchar(255) not null,FilePath varchar(255) not null,FileType varchar(10),FileOwner varchar(50) not null,FileCreated datetime default(getdate()) not null,FileSubject varchar(100) not null)
go
create index pk_tblFile on tblFile (FileID ASC)
go
create unique index ix_tblFile on tblFile (FileOwner ASC)
go
alter table tblFile add constraint pk_tblFile primary key (FileID)
go
alter table tblFile add constraint fk_tblFile_tblUser foreign key (FileOwner)
references tblUser (UserID)
on delete restrict
on update restrict
go

问题
1:在关键字 'restrict' 附近有语法错误。
我的目的就是创建2表FileOwner和UserID的关系约束 为什么会失败?
望了解的人帮我改下到底哪错了?这段我照着书上教程打的!
2:create index pk_tblFile on tblFile (FileID ASC)
create unique index ix_tblFile on tblFile (FileOwner ASC)
前句是创建主键 后句是翻译是唯一键 和主键有什么区别?简单说下就可

1. 语法上没看出有错, 问下有没有tblUser这个表? 这个表的UserID有没有建主键或是唯一键?

2. 第二条里的前句不是创建主键,它是创建索引.
alter table tblFile add constraint pk_tblFile primary key (FileID)
这条是主键
主键一般是一个字段, 比如自增长的ID, 唯一键一般是几个字段组成的构成唯一值.

tblUser 的UserID必须得有索引,且数据类型要跟tblFile表的FileOwner一致。

一张表里只能有一个主键,但是可以有多个唯一键
唯一键的值可以为空,即null,主键的值不能为空

你要进行级联更新,和级联删除吧。
应该是on delete cascade 和 on update cascade