2014-11-21 6 views
1

Я вызываю сценарий 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. 
); 

имеет смысл?

+1

Будет ли последний ответ в приведенной ниже ссылке ваш случай? http://dba.stackexchange.com/questions/77298/how-to-make-sqlcmd-return-an-errorlevel-other-than-0-when-the-sql-script-fails – knkarthick24

+0

Да, мужчины, это working :) –

ответ

0

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

Примера:

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

-r [0 | 1] msgs to stderr

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

MSDN for more

+0

Спасибо, но не работа, уровень ошибки все еще в 0 :(, посмотрите http://postimg.org/image/95wwn7p3z/ –