数据库表 字段扩大的问题???

yinliaobao 2012-03-02 09:03:18

根据需求改变,原来表中一个字段 为 varchar(10),现在需增加到 varchar(50) 。

表中数据库有五百多万条 拉。。

我直接到表中去改 其大小,每次都提示 操作超时 失败..

请问怎么改?????
...全文
277 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
houyajin 2012-03-05
  • 打赏
  • 举报
回复
先看一下“工具”——“选项”——“Designers”那里把“阻止保存要求重新创建表的更改”这个是否勾去,如果没有,勾掉修改,如果不行。
然后尝试用7楼的方法。先增加一个字段批量更新,然后再把原来的删除掉。

不过应该是可以直接更新的,我之前也修改过SQL SERVER08 R2没有遇到这个问题的。 直接语句改。
flyfly2008 2012-03-05
  • 打赏
  • 举报
回复
楼上的方法,可以哟
代码兔 2012-03-05
  • 打赏
  • 举报
回复

  这种操作的可行性与服务器的硬件环境有很大关系,如果设备好,直接改没有问题,否则很容易出问题。

  建议:
  1.先新增加一个字段如:b,数据类型varchar(50) 。
  2.分批把原来字段(如:a)值更新到b
   


   update tablename set b=a where b='' and id<100000
  

  3.如果还要用以前的字段名,则把a删除,再把b改为a。
大力水手 2012-03-02
  • 打赏
  • 举报
回复

alter table tbname alter column colName varchar(50) --修改列的类型

gogodiy 2012-03-02
  • 打赏
  • 举报
回复
首先你要选择在没有其他用户对该表进行操作的时间进行修改。
其次如果是2008,那么你需要在“工具”——“选项”——“Designers”那里把“阻止保存要求重新创建表的更改”前面的勾去掉,然后就可以通过GUI界面或者直接使用ALTER语句来修改了。
yinliaobao 2012-03-02
  • 打赏
  • 举报
回复

该表的用户一直在操作,也就是一直往该表中写入数据
yinliaobao 2012-03-02
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 travylee 的回复:]
你可以先删除该列,然后再加上一个新的列:

SQL code

alter table tablename
drop column colname
alter table tablename
add colname varchar(50)
[/Quote]


那删除该列,该列的值怎么办 ?
  • 打赏
  • 举报
回复
你可以先删除该列,然后再加上一个新的列:

alter table tablename
drop column colname
alter table tablename
add colname varchar(50)
老猫五号 2012-03-02
  • 打赏
  • 举报
回复
这个就是可以直接改的,你是不是用的是SQL 2008,2008默认设置是不可以直接改的,你要在设置里将参数改过来,允许直接改表就可以了

34,594

社区成员

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

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