如何修改一个表的完整性约束?-----实体完整性
SQL数据库
一个表S已知在创建它时定义了个实体完整性
create table S
(......
......
......
constraint PK_S primary key (Sname));
现在想通过一些语句修改这个表的主码,把它改为S_id。
问题点数:20、回复次数:4Top
1 楼firedragoninhell(SZGODDON)回复于 2002-06-19 10:30:37 得分 10
先去掉主键:
alter table S drop CONSTRAINT pk_s
在新增主键:
alter table S
add constraint pk_S primary key clustered(S_id)Top
2 楼zhdleo(叮东)回复于 2002-06-19 14:42:12 得分 0
clustered 这是?
在我再新增主键:
alter table S
add constraint pk_S primary key clustered(S_id)
出错:Server: Msg 8111, Level 16, State 1, Line 1
Cannot define PRIMARY KEY constraint on nullable column in table 'S'.
Server: Msg 1750, Level 16, State 1, Line 1
Could not create constraint. See previous errors.
好像是说不能对一个可空的加 PRIMARY KEY
那我该怎么办?Top
3 楼zhdleo(叮东)回复于 2002-06-19 14:48:27 得分 0
是不是我只能在create 的时候就对要新设的PRIMARY KEY 设为NULL??
有没有别的办法!在以后面改???Top
4 楼Yang_(扬帆破浪)回复于 2002-06-26 08:12:55 得分 10
这个错误是由于你的S_id字段是可空的。不能作为主键。
主键是不可为空而且唯一的。
现在的唯一办法是把S_id字段改为NOT NULL。再加主键。
Top




