我正在尝试将varchar列转换为bigint并不断出现错误。
我尝试使用每种精确或近似数据类型来更改该列,并且该列不会转换。我已经整理并清理了数据,但是仍然有问题。
这是我一直在使用的代码。
USE [database1]
GO
ALTER TABLE [dbo].[table1]
ALTER COLUMN [column1] bigint
GO
这些是上面代码的结果
Msg 8114, Level 16, State 5, Line 31
Error converting data type varchar to bigint.
The statement has been terminated.
感谢您的帮助,谢谢。
答案 0 :(得分:0)
您似乎有无效的值。因此,将其更新:
update t
column1 = convert(varchar(255), try_convert(bigint, column1));
然后尝试更改列类型。
或者,只需添加一个计算列:
alter table t add column1_bi as (try_convert(bigint, column1));
您可以查看正在使用的错误值:
select column1
from t
where try_convert(bigint, column1) is null and column1 is not null;