我正在尝试将表中的一个列从
不过,我在进行操作时遇到了一些困难。
我已经尝试了以下方法:
Float
(空)更改为 Varchar(25)
(空)。当前数据中最大的浮点数为12位,但未来可能需要添加更多位,因此使用varchar(25)
。该列目前存储电话号码。修改后可以支持前导零。不过,我在进行操作时遇到了一些困难。
我已经尝试了以下方法:
ALTER TABLE Customer
ALTER COLUMN Phonenumber varchar(25)
这不能给我所需的结果。
例如,1549779498
变成了 1.54978e+009
然后我尝试了以下操作:
- 创建一个新的(临时)列
PhonenumberVarchar
- 将数据从一列转换并复制到另一列
- 删除旧列
- 将新列重命名为旧名称
代码:
ALTER TABLE Customer
ADD PhonenumberVarchar varchar(25)
UPDATE Customer
SET PhonenumberVarchar = STR(Phonenumber, 12, 0)
ALTER TABLE Customer
DROP COLUMN Phonenumber
EXEC sp_rename 'Customer.PhonenumberVarchar', 'Phonenumber', 'COLUMN'
这个也不起作用:
子查询返回了多个值。当子查询跟随 =,!=,<,< =,>或> = 时,不允许使用此操作,或者当子查询被用作表达式时。
现在时间已经很晚了,我的头非常痛......
有人可以帮忙吗?
注意:
该表相当庞大,约有150万行,因此性能可能是一个问题。
使用SQL Server。