Сообщение 8114, уровень 16, состояние 5, строка 31 Ошибка преобразования типа данных varchar в bigint - PullRequest
0 голосов
/ 09 мая 2019

Я пытаюсь преобразовать столбец 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 голосов
/ 09 мая 2019

Возможно, у вас неверные значения. Итак, обновите их:

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;
...