日期:2014-05-18  浏览次数:20681 次

数据库表 字段扩大的问题???
 
  根据需求改变,原来表中一个字段 为 varchar(10),现在需增加到 varchar(50) 。

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

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

  请问怎么改?????

------解决方案--------------------
这个就是可以直接改的,你是不是用的是SQL 2008,2008默认设置是不可以直接改的,你要在设置里将参数改过来,允许直接改表就可以了

------解决方案--------------------
你可以先删除该列,然后再加上一个新的列:
SQL code

alter table tablename
drop column colname
alter table tablename
add colname varchar(50)

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

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

------解决方案--------------------

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

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


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

------解决方案--------------------
楼上的方法,可以哟
------解决方案--------------------
先看一下“工具”——“选项”——“Designers”那里把“阻止保存要求重新创建表的更改”这个是否勾去,如果没有,勾掉修改,如果不行。
然后尝试用7楼的方法。先增加一个字段批量更新,然后再把原来的删除掉。

不过应该是可以直接更新的,我之前也修改过SQL SERVER08 R2没有遇到这个问题的。 直接语句改。