Chinaunix首页 | 论坛 | 博客
  • 博客访问: 367307
  • 博文数量: 70
  • 博客积分: 1837
  • 博客等级: 上尉
  • 技术积分: 670
  • 用 户 组: 普通用户
  • 注册时间: 2007-06-02 00:05
文章分类

全部博文(70)

文章存档

2013年(6)

2012年(4)

2011年(14)

2010年(5)

2009年(12)

2008年(8)

2007年(21)

分类: 数据库开发技术

2007-06-05 23:28:12

[求助]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' 上定义了主键。
未能创建约束。请参阅前面的错误信息。*/

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

 

阅读(3805) | 评论(0) | 转发(0) |
0

上一篇:[Java]abstract class

下一篇:年例

给主人留下些什么吧!~~