Как определить в сценарии, если оператор SQL не удалось - PullRequest
1 голос
/ 26 января 2011

В настоящее время я печатаю сценарий для моего проекта и в настоящее время испытываю трудности с поиском информации о том, как выполнять большинство функций, которые предлагает MS SQL.

Я пытаюсь найти способ проверить, не завершилась ли инструкция SQL при выполнении. Например, попытаться вставить запись, которая уже существует в таблице. Любая помощь будет принята с благодарностью

Ответы [ 2 ]

5 голосов
/ 26 января 2011

Вы можете использовать возможности try / catch SQL Server.

Другой источник статьи и образец T-SQL:

BEGIN TRY
  DECLARE @X INT
  -- Divide by zero to generate Error
  SET @X = 1/0
  PRINT 'Command after error in TRY block'
END TRY
BEGIN CATCH
  PRINT 'Error Detected'
END CATCH

например. Обрабатывать сбои в блоке catch для определенных операций.

1 голос
/ 26 января 2011

Попробуйте поймать это путь. Если у вас есть много шагов в porcess и вы хотите увидеть подробности того, что он сделал в определенную дату, включая ошибки, вы можете сохранять необходимые вам данные после каждого шага в табличной переменной по мере продвижения (и ошибка в блоке catch ), а затем после отката вставьте данные в таблицу журналов пермананета. Это даст вам историю ошибок, которые могут оказаться неоценимыми при дальнейшем исследовании проблем. Табличные переменные не выходят из области видимости при откате, тогда как временные таблицы будут.

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