如何在不显示错误消息的情况下捕获Sqlcmd错误

时间:2018-02-15 17:47:46

标签: shell sqlcmd

我试图通过运行以下

来确定服务器上安装了SQLEXPRESS
sqlcmd -S LT1183 -U uname -P pass123 -Q "SELECT @@servername"

如果已安装,则会提供服务器名称,但如果没有,则会抛出以下错误。

  

Sqlcmd:错误:用于SQL Server的Microsoft ODBC驱动程序11:登录超时已过期   Sqlcmd:错误:用于SQL Server的Microsoft ODBC驱动程序11:TCP提供程序:错误代码0x2AF9。   Sqlcmd:错误:SQL Server的Microsoft ODBC驱动程序11:建立与SQL Server的连接时发生了与网络相关或特定于实例的错误。找不到服务器或无法访问服务器。检查实例名称是否正确以及SQL Server是否配置为允许远程连接。有关详细信息,请参阅SQL Server联机丛书。

我正在寻找一种方法来抑制此错误,而是显示自定义错误消息。这可能吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

使用sqlcmd可能无法做到这一点,因为错误源于连接服务器,错误会立即终止sqlcmd。

如果你可以使用powershell,你可以使用invoke-sqlcmd找到一些运气。

Powershell Try Catch invoke-sqlcmd