Sql server 如何在批处理文件中获取SQL Server脚本错误

Sql server 如何在批处理文件中获取SQL Server脚本错误,sql-server,batch-file,error-handling,sql-scripts,Sql Server,Batch File,Error Handling,Sql Scripts,我正在对批处理文件调用SQL Server脚本,但我需要在批处理文件中获取错误(当脚本失败时),我可以做什么 这是批处理文件: sqlcmd -S HOST -U User -P password -i test.sql echo %errorlevel% 这是脚本文件(Test.sql): 有意义吗?可以使用-r参数: 例如: sqlcmd -Q "select 1 as a; select 1/0 as b" -E -r1 1> NUL -r[0 | 1]MSG至标准 将错误消息

我正在对批处理文件调用SQL Server脚本,但我需要在批处理文件中获取错误(当脚本失败时),我可以做什么

这是批处理文件:

sqlcmd -S HOST  -U User -P password -i test.sql
echo %errorlevel%
这是脚本文件(Test.sql):


有意义吗?

可以使用-r参数:

例如:

sqlcmd -Q "select 1 as a; select 1/0 as b" -E -r1 1> NUL
-r[0 | 1]MSG至标准

将错误消息输出重定向到屏幕(stderr)。如果你这样做 不指定参数,或者如果指定0,则仅显示以下错误消息: 严重性级别为11或更高的将被重定向。如果您指定 1,所有错误消息输出(包括打印)都被重定向。没有 如果使用-o,则会产生效果。默认情况下,消息被发送到stdout


谢谢,但不起作用,错误级别仍然为0:(,请看下面链接中的最后一个答案是您的情况吗?是的,它起作用了:)
sqlcmd -Q "select 1 as a; select 1/0 as b" -E -r1 1> NUL