Как получить ошибку сценария SQL Server в пакетном файле

Я вызываю сценарий SQL Server для пакетного файла, но мне нужно получить ошибку (при сбое сценария) в пакетном файле, что я могу сделать?

Это командный файл:

sqlcmd -S HOST  -U User -P password -i test.sql
echo %errorlevel%

и это файл сценария (Test.sql):

USE TrainingSitecore_Web  
go

SELECT * FROM   items 
go

RAISERROR ('This is a test Error.',-- Message text.
           16,-- Severity.
           1 -- State.
); 

Есть смысл?


person davdomin    schedule 21.11.2014    source источник
comment
Будет ли последний ответ в приведенной ниже ссылке вашим случаем? dba.stackexchange.com/questions/77298/   -  person knkarthick24    schedule 21.11.2014
comment
Да, ребята, это работает :)   -  person davdomin    schedule 21.11.2014


Ответы (1)


Это можно сделать с помощью параметра -r:

Пример:

sqlcmd -Q "select 1 as a; select 1/0 as b" -E -r1 1> NUL

-r[ 0 | 1] сообщения на стандартный вывод

Перенаправляет вывод сообщения об ошибке на экран (stderr). Если вы не укажете параметр или укажете 0, перенаправляются только сообщения об ошибках с уровнем серьезности 11 или выше. Если вы укажете 1, весь вывод сообщений об ошибках, включая PRINT, будет перенаправлен. Не имеет никакого эффекта, если вы используете -o. По умолчанию сообщения отправляются на стандартный вывод.

MSDN для получения дополнительной информации

person knkarthick24    schedule 21.11.2014
comment
Спасибо, но не работает, уровень ошибки по-прежнему равен 0 :(, посмотрите на postimg.org/image/95wwn7p3z - person davdomin; 21.11.2014