Эквивалентный из отладки. Утверждайте для SQL Server

Я адаптирую большое количество сценариев SQL Server 2005 года для слияния двух из наших баз данных вместе. Скрипты запущены из .cmd файла, который называет sqlcmd для запущения скриптов в порядке. Однако я испытываю одну или две проблемы, где сценарии перестали работать.

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

Если бы у меня была эта проблема с блоком.NET, то я увеличил бы код с Отладкой. Утверждайте или установите точки останова, где я знал, что отказы собирались произойти, который приостановит выполнение программы и позволит мне проверять значения переменных.

Я задавался вопросом, там эквивалент в SQL Server 2005?

6
задан marc_s 8 July 2010 в 11:40
поделиться

2 ответа

Мне никогда не удавалось заставить интегрированную отладку хорошо работать с SQL Server - я обычно прибегаю к отладке "printf", используя либо PRINT, либо RAISERROR. RAISERROR может выполнять некоторое базовое форматирование аргументов, чтобы вывести значения в окно сообщений. Например, если у вас есть параметр @Val1 типа int, вы можете сделать следующее:

RAISERROR('Val1 = %i',10,1,@Val1) WITH NOWAIT

(опция WITH NOWAIT вызывает немедленное появление сообщения, а не обычное для SQL поведение буферизации сообщений/выводов)

7
ответ дан 16 December 2019 в 21:33
поделиться

Я использую пакетные файлы и проверяю код ошибки следующим образом:-

SQLCMD.EXE -b -l 30 -E -S <SERVER> -i "<SQLFILE>.sql">>"%LOG_FILE%"2>&1

IF ERRORLEVEL 1 (
    ECHO. Failed.
) ELSE (
    ECHO. Succeeded.
)
0
ответ дан 16 December 2019 в 21:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: