数据库表 字段扩大的问题???
根据需求改变,原来表中一个字段 为 varchar(10),现在需增加到 varchar(50) 。
表中数据库有五百多万条 拉。。
我直接到表中去改 其大小,每次都提示 操作超时 失败..
请问怎么改?????
[解决办法]
这个就是可以直接改的,你是不是用的是SQL 2008,2008默认设置是不可以直接改的,你要在设置里将参数改过来,允许直接改表就可以了
[解决办法]
你可以先删除该列,然后再加上一个新的列:
- SQL code
alter table tablenamedrop column colnamealter table tablenameadd 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没有遇到这个问题的。 直接语句改。