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

guomaomao1981 2005-07-31 09:00:37
我用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
语句建立主键约束。说得有点乱,大概就是这么一个思路,请各位高手不吝赐教,分不够再开贴放分。
...全文
222 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
tangqijun199 2005-08-04
  • 打赏
  • 举报
回复
这样应该可以一起执行了。
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
  • 打赏
  • 举报
回复
这些操作不能放到一起执行,但是分开执行就没有问题?那位大虾知道是何原因?实在没有答案的话,我就结贴放分了.
PHDYCN 2005-08-04
  • 打赏
  • 举报
回复
学习 up
guomaomao1981 2005-08-04
  • 打赏
  • 举报
回复
小弟在此谢过各味大虾了。
j9dai 2005-08-01
  • 打赏
  • 举报
回复
:)
guomaomao1981 2005-08-01
  • 打赏
  • 举报
回复
谢谢二位,我试验一下,如果可行,立即结贴。
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列的值.

青锋-SS 2005-07-31
  • 打赏
  • 举报
回复
删除约束:
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_mast_zhis_dm]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[mast] DROP CONSTRAINT FK_mast_zhis_dm
创建约束:
ALTER TABLE [dbo].[mast] ADD
CONSTRAINT [FK_mast_zhis_dm] FOREIGN KEY
(
[zhis_dm]
) REFERENCES [dbo].[zhis_dm] (
[zhis]
)
注:FK_mast_zhis_dm,关系名称.

754

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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