如何用sql语句删除主键约束,并且在修改了列属性之后再把主键约束加上(放分100,解决问题立即相送,决不食言)

guomaomao1981 2005-07-31 09:03:39
我用pb做的前台,sqlserver作后台数据库。现在某一张表中已经包含数据,但是主键列字段不够长,想用sql语句增长字段长度,但是在查询分析器中执行alter table tab_name alter column col_name type(lenth)提示有主键约束,不让执行此语句。只好先用sql语句删除主键约束,再用alter table tab_name alter column col_name type(lenth)语句增长主键列字段长度,然后再用sql
语句建立主键约束。说得有点乱,大概就是这么一个思路,请各位高手不吝赐教,看看这个sql语句应该怎么写,分不够再开贴放分。
...全文
13649 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenqianlong 2005-08-04
  • 打赏
  • 举报
回复
代碼先全部編譯,不是一部分一部分的先執行的。是一起執行,編譯通不過的,因為你還沒有drop,是改不了的
tangqijun199 2005-08-04
  • 打赏
  • 举报
回复
declare @PK varchar(100)
create table a (bb varchar(10) not null,cc money)

alter table a add primary key (bb)

select @pk=name from sysobjects where xtype='PK' and parent_obj=object_id('a')
' 上面的a你的表名字

exec ('alter table a drop CONSTRAINT '+@pk)

这样应该可以吧。
guomaomao1981 2005-08-04
  • 打赏
  • 举报
回复
这些操作不能放到一起执行,但是分开执行就没有问题?那位大虾知道是何原因?实在没有答案的话,我就结贴放分了.
GRLD8888 2005-08-03
  • 打赏
  • 举报
回复
可以先利用系统存储过程,先查看一下表中约束的情况,找到表中主键约束的名字

--打开数据库
use database_name

--查看表上主键约束的名字

exec sp_helpconstraint table_name

---删除表上存在的主键约束

drop constraint constraint_name

---做完你需要做的工作后

---再次修改表,将主键约束添加上

alter table table_name
add primary key(column_name)

--完成
guomaomao1981 2005-08-03
  • 打赏
  • 举报
回复
因为要给用户升级程序,所以必须要求使用sql语句。我会试验一下各位大虾的意见,如果可行,立即结贴放分。
tangqijun199 2005-07-31
  • 打赏
  • 举报
回复
create table a (bb varchar(10) not null,cc money)

alter table a add primary key (bb)

alter table a drop CONSTRAINT PK__a__1372D2FE

"PK__a__1372D2FE" 为sysobjects 中表a的主键对象的name列的值.

alter table a alter column 修改的列 数据类型
alter table a add primary key (要设置为主键的列)
oupatch 2005-07-31
  • 打赏
  • 举报
回复
用企业管理器多方便.为什么非得用sql语句呢
xueguang 2005-07-31
  • 打赏
  • 举报
回复
--删除
alter table 你的表 drop constraint 主键名
go
--修改
ALTER TABLE 你的表 ALTER COLUMN 列名 你的类型
go
--增加
alter table 你的表 add constraint 主键名 primary key (列名)
go
xueguang 2005-07-31
  • 打赏
  • 举报
回复
在企业管理器中找到对应的数据库并找到相应表,在表上点右键选设计表,在其中去除主键约束,再修改列属性,然后再增加主键
dingjuntm 2005-07-31
  • 打赏
  • 举报
回复
你在数据库里先把主键约束解除!把你想做事的做了,再添加上去,你看行不行!

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧