【求助】SQL2000如何修改表的属性

作者在 2007-04-26 20:49:00 发布以下内容

【求助】SQL2000如何修改表的属性


1.在SQL Server 2000的查询分析器里建表时偶然遇到一个问题:
点击SQL Server 2000的查询分析器,进入刚建立的一个数据库SPJ里,在当下使用如下命令建

立一个表spj:
create table spj
(sno char(4),
 pno char(4),
 jno char(4),
 qty int,
 primary key (sno,pno),
 foreign key (sno) references s (sno),
 foreign key (pno) references p (pno),
 foreign key (jno) references j (jno)
)

外码sno、pno、jno分别参照已建好的表s、p、j。
之后插入数据命令时:
insert
into spj(sno,pno,jno,qty)
s('s1','p1','j3',100) /*之前输入一个值s('s1','p1','j1',200)*/

执行命令后显示:
违反了 PRIMARY KEY 约束 'PK__spj__1CF15040'。不能在对象 'spj' 中插入重复键。
语句已终止。

这是因为我建表spj时设定(sno,pno)为主码,所以输入第二个值时违反了列级完整性约束条

件。

故我想起alter命令来修改表的属性,只是课本说的很不详细,我试了几个命令格式都不行:

alter table spj
drop (sno,pno) primary key
add (sno,pno,jno) primary key  /*语法错误*/

或者
alter table spj
drop primary key (sno,pno)
add primary key (sno,pno,jno) /*在关键字 'primary' 附近有语法错误*/

或者
alter table spj
add primary key(sno,pno,jno)
/*分析命令通过,执行命令显示:
已在表 'spj' 上定义了主键。
未能创建约束。请参阅前面的错误信息。*/

我的意思就是想修改表的约束条件,应如何修改呢?

 

SQL | 阅读 6958 次
文章评论,共0条
游客请输入验证码
浏览96922次