Установка сценариев SQLProj Pre/PostDeploy для сбоя сборки

Я работаю над развертыванием SQLProj (Database Project) через VS2013, и у меня возникла проблема, по которой я мог бы использовать некоторые отзывы.

Когда я публикую изменения, он выполняет операцию CCRD (создание, копирование, переименование, удаление) для таблицы. Создайте и скопируйте в сценарий PreDeploy и переименуйте, удалите в сценарии PostDeploy. У меня есть эти операторы, инкапсулированные в блок Try...Catch, и он распечатывает сообщения об ошибках. При возникновении проблем с сценариями до и после развертывания публикация завершается, показывая публикацию как успешную. Мне нужно, чтобы поведение было другим, когда эти скрипты сталкиваются с ошибками. Я хотел бы, чтобы любые ошибки, встречающиеся в этих сценариях, приводили к сбою публикации. Я попытался командой THROW выдать ошибку, и я попытался установить значение RAISERROR для команды, установив уровень серьезности 20, когда он выполняется, что в соответствии с BOL должно прервать соединение, но публикация завершается со статусом "Успешно".

2 ответа

Что-то, что мы сделали, разделило процесс. Мы используем SQLPackage.exe с действием сценария. Затем мы используем SQLCMD.exe для выполнения скрипта. Таким образом, у вас есть ОДИН скрипт, содержащий ваш pre/main/post и использующий SQLCMD, который остановит выполнение при возникновении ошибок.

Похоже, вы делаете правильно, и это должно работать.

если бы мне пришлось угадывать, я бы сказал:

  • вы можете игнорировать ошибки (: если ошибка игнорируется где-то в вашем проекте? sqlserver или ваша среда настроены на обработку ошибок как предупреждений и их игнорирование?)
  • Возможно, вы на самом деле не выкидываете ошибки. Можете ли вы опубликовать пример сценария, чтобы мы могли его увидеть?
Другие вопросы по тегам