消息8114,级别16,状态5,第31行将数据类型varchar转换为bigint时出错

时间:2019-05-09 16:16:46

标签: sql sql-server-2014

我正在尝试将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.

感谢您的帮助,谢谢。

1 个答案:

答案 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;