Я изменяю хранимую процедуру и затем выполняю ее. По сути, речь идет о вставке таблицы ежемесячных требований (которую я импортировал, и все переменные VARCHAR(MAX)
) в существующую большую таблицу с предыдущими историческими данными.
В первую очередь хранимая процедура выполняет изменение типов данных для всех переменных в соответствии с существующими типами данных переменных больших таблиц. По большей части я смог запустить хранимую процедуру и обновить большую таблицу. Для одного из файлов при запуске процедуры выдается следующая ошибка:
Сообщение 8114, Уровень 16, Состояние 5, Процедура InsertClaimsData, Строка 10 [Стартовая Строка 8]
Ошибка преобразования типа данных varchar в float
Я не могу определить, какая именно переменная вызывает эту проблему, поскольку существует более 10 переменных, в которых первоначальный разработчик этого кода использовал код преобразования следующего типа:
CASE WHEN ISNUMERIC([INSURED ZIP]) = 1 THEN CAST([INSURED ZIP] AS FLOAT) ELSE 0 END
,CASE WHEN ISNUMERIC([BILLING PROVIDER TAX ID]) = 1 THEN CAST([BILLING PROVIDER TAX ID] AS FLOAT) ELSE 0 END
Выше приведен небольшой фрагмент кода.
Есть ли лучший способ написания этого кода, чтобы в случае наличия неверных данных он игнорировал их и не выдавал ошибку? Или любой способ узнать, какая переменная или записи ответственны за эту ошибку, и я могу тогда это исправить?
Я использую SSMS 17