2013-06-20 5 views
4

Как вы можете продолжить запрос SQL при обнаружении ошибки во время запроса?Как продолжить SQL-запрос при обнаружении ошибки?

Я хочу продолжить запрос, если возникнет какая-либо ошибка. Я хочу получить вывод определенного оператора и хочу узнать, является ли последний вывод запроса.

Как вы можете это сделать в T-SQL?

+5

Вы не можете продолжать с ** запрос ** и игнорировать все ошибки. Предполагая, что вы хотите, чтобы вам был нужен набор результатов с «1,2» из следующего «SELECT * FROM» (SELECT 1 UNION ALL SELECT CAST («X» AS INT) UNION ALL SELECT 2) T (C) ' –

+0

@MartinSmith Является ли TRY CATCH полезным в моем случае? – ajdeguzman

+3

Каков ваш случай? Если это соответствует моему предыдущему комментарию, тогда нет, что не будет делать то, что вы хотите. Можете ли вы уточнить, что вы пытаетесь сделать? –

ответ

8

Вы можете использовать TRY-CATCH для обработки ошибок.

Вы можете найти достаточно документации здесь: http://msdn.microsoft.com/en-us/library/ms175976.aspx

UPDATE:

После немного больше исследований я обнаружил, что с помощью команды GO позволит вам продолжить ваш следующий запрос, и вы выиграли не нужно перестраивать весь код с помощью инструкций TRY-CATCH. Я по-прежнему рекомендую использовать инструкции TRY-CATCH для управления ошибками, но просто используйте GO между ними.

Это ссылка, где я нашел ответ: continue-executing-sql-statements-despite-errors

+3

На самом деле это не объясняет, как можно использовать SQL-запрос * continue * при использовании 'TRY ... CATCH'. –

+1

TRY CATCH позволяет вам управлять обработкой ошибок. Не продолжить. – gbn

+0

Это помогло. Я спарил GO с запуском сценария 118mb на SQLCMD -d <имя_базы_данных> -i . оказалось, что это было одно, раздражающее, малое, умиротворяющее изменение, сделанное одним из разработчиков, заставившее одно из моих ценностей не найти внешний ключ :) – Eon

Смежные вопросы