Это база данных sql 2000, с которой я работаю.SQL 2000 «TRY CATCH like» Обработка ошибок
У меня есть то, что я называю промежуточной таблицей, которая является исходным дампом данных, поэтому все это ntext или nvarchar (255).
мне нужно бросить/преобразовать все эти данные в соответствующие типы данных (т.е. INT, десятичную, NVARCHAR и т.д.)
Как я собирался сделать это, чтобы перебрать все записи с помощью while и попытаться выполнить CAST для каждого столбца в одной записи во время каждой итерации после того, как я нахожусь в определенной записи, я отмечаю ее как обработанную (бит-поле).
Но как я могу зарегистрировать ошибку, когда/если она встречается, но разрешить цикл while продолжить.
Сначала я реализовал это с помощью TRY CATCH в локальном экземпляре SQL 2005 (чтобы получить проект), и все работает хорошо, но сегодня я узнал, что база данных разработчиков dev &, созданная международными DBA экземпляр SQL 2000, поэтому я должен соответствовать.
EDIT: Я использую пакет SSIS для заполнения промежуточной таблицы. Я вижу, что теперь я должен пересмотреть этот пакет и реализовать компонент скрипта для обработки конверсий. Спасибо, ребята
EDIT: Я утра делаю это на рекорд по рекордной основе, а не пакетная вставка, так что идея сделки кажется, что это было бы возможно, но я не уверен, как ловушка @@ ERROR и разрешить сохранение хранимой процедуры.
EDIT: Мне очень нравится Guy's approach, я собираюсь реализовать его таким образом.