SQL SERVER怎样修改主键中列的数据类型?

wuqiuzhi 2003-03-07 03:59:22
我的一个SQL SERVER 数据库,现在已经有几万条数据,并且在不停地加入,由于实际的需要,我必须修改一个表中主键的数据长度,但是用T-SQL 语言系统会告诉:

服务器: 消息 5074,级别 16,状态 8,行 2
对象 'PK_net_test' 依赖于 列 'col2'。
服务器: 消息 4922,级别 16,状态 1,行 2
ALTER TABLE ALTER COLUMN col2 失败,因为有一个或多个对象访问此列。

但是手动在企业管理器中修改又可以。

请问有没有办法用T-SQL 语句实现
alter table testDb.dbo.net_test alter column col2 char(4)
将char(2)到char(4)的?
...全文
685 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
pbsql 2003-03-07
  • 打赏
  • 举报
回复
那就只好先取消这个列的约束,再修改它的列长,再重新设置约束
wuqiuzhi 2003-03-07
  • 打赏
  • 举报
回复
不,约束是有的,因为手动修改的过程中,会弹出一个窗口询问是否加入修改到对应的约束中。
pbsql 2003-03-07
  • 打赏
  • 举报
回复
手动在企业管理器中修改又可以,说明没有约束,只是用T-SQL语句实现才出错可能与外部有关,要不你将T-SQL语句拷贝到查询分析器里执行试一试
wuqiuzhi 2003-03-07
  • 打赏
  • 举报
回复
是不是用SQL语句写就必须去掉该列所涉及的所有约束?
wuqiuzhi 2003-03-07
  • 打赏
  • 举报
回复
可是一直有数据在向里面加啊,并且还有外键,我最主要是期望用T-SQL语句实现,因为我需要用来修改其他地方的类似情况。
Drate 2003-03-07
  • 打赏
  • 举报
回复
先取消这个列的主键约束,再修改它的列长,再重新设置主键
wuqiuzhi 2003-03-07
  • 打赏
  • 举报
回复
我不管外部用什么,我只要求加长就可以了。
pbsql 2003-03-07
  • 打赏
  • 举报
回复
加长应该是可以的,你用什么连接数据库的?

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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