«Ошибка преобразования при преобразовании значения varchar 'NULL' в тип данных int" - PullRequest
8 голосов
/ 09 января 2009

Когда я вставляю записи в длинную таблицу, я получаю сообщение об ошибке «Ошибка преобразования при преобразовании значения varchar 'NULL' в тип данных int" Как я могу определить, какие ошибки столбца?

В таблице много полей и миллионы записей. Каждая итерация занимает 10 минут, когда я пытаюсь вставить строку «NULL» в целочисленный столбец. Я думал, что сервер SQL может сказать мне точное имя столбца: (

Ответы [ 4 ]

12 голосов
/ 09 января 2009

Если значение действительно NULL, ошибки преобразования не будет. Однако, у вас есть строка = "NULL", тогда вы получите эту ошибку.

Что вы могли бы сделать, это ...

NullIf(YourValueHere, 'NULL')

NullIf возвращает значение первого параметра, если оно не совпадает со вторым параметром. Если параметры совпадают, NullIf вернет NULL.

Ex:

Select NullIf('Any Value', 'NULL')

Select NullIf('null','null')

Первый вернет «Любое значение», а второй вернет NULL (не «ноль»)

4 голосов
/ 09 января 2009

Тот факт, что в нем упоминается « varchar значение« NULL »», указывает, что вы пытаетесь установить значение столбца в строку «NULL» вместо значения NULL.

Найдите в своем утверждении слово NULL, заключенное в кавычки. Вам нужно будет удалить эти цитаты.

2 голосов
/ 09 января 2009

Вам нужно исправить данные или вы можете просто преобразовать нули в 0 для этой вставки?

Если вы можете просто конвертировать, вы можете обернуть ваши архивные файлы, которые конвертируются, с помощью функции ISNULL. Просто поместите следующее вокруг любых значений, которые вставляются в поля int.

ISNULL(col1,0)
2 голосов
/ 09 января 2009

Начните комментировать материал по одному, пока он не прекратит бомбить. Или посмотрите, какое значение вы передаете, равно NULL для столбца int.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...