首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQLCMD的返回值

SQLCMD的返回值
EN

Stack Overflow用户
提问于 2011-03-24 11:54:20
回答 2查看 28.5K关注 0票数 21

我需要检查通过SQLCMD实用工具运行的查询的退出状态(成功/失败)。例如,我连接的服务器没有数据库名EastWind。然后,下面的命令与消息一起失败.

代码语言:javascript
复制
> "C:\Program Files\Microsoft SQL Server\100\Tools\Binn\SQLCMD.EXE" 
     -S ZEPHIR -E -Q "USE WestWind"
Changed database context to 'WestWind'.
> echo %errorlevel%
0
> "C:\Program Files\Microsoft SQL Server\100\Tools\Binn\SQLCMD.EXE" 
     -S ZEPHIR -E -Q "USE EastWind"
Database 'EastWind' does not exist. Make sure that the name is entered correctly
> echo %errorlevel%
0

我看到,在这两种情况下,返回值是相同的。如何检查命令在SQLCMD中是否失败

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-24 13:50:18

您需要使用选项

注:这是大写-V,而不是小写-v

示例:

代码语言:javascript
复制
> SQLCMD.EXE -S whatever -E -V16 -Q "USE does_not_exist"
  Msg 911, Level 16, State 1, ...
  Could not locate entry ...
> echo %ERRORLEVEL%
  16

更新:,您也可以使用-b选项,它对执行具有不同的语义(整个批处理在第一个错误时停止)。YMMV

示例:

代码语言:javascript
复制
> SQLCMD.EXE -S whatever -E -b -Q "USE does_not_exist"
  Msg 911, Level 16, State 1, ...
  Could not locate entry ...
> echo %ERRORLEVEL%
  1

您还可以组合-b-V

票数 32
EN

Stack Overflow用户

发布于 2011-03-24 12:08:43

我不确定,但是您试过SQLCMD -m开关吗?sqlcmd实用程序

-m error_level -控制哪些错误消息被发送到stdout。发送严重级别大于或等于此级别的消息。当此值设置为-1时,将发送包括信息性消息在内的所有消息。不允许在-m-1之间使用空格。例如,-m-1是有效的,而-m -1不是。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5418690

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档