【求助】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' 上定义了主键。
未能创建约束。请参阅前面的错误信息。*/
我的意思就是想修改表的约束条件,应如何修改呢?