【问题标题】:How to catch Sqlcmd errors without showing the error message如何在不显示错误消息的情况下捕获 Sqlcmd 错误
【发布时间】:2018-02-16 02:05:52
【问题描述】:

我正在尝试通过运行以下命令来找出服务器上是否安装了 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:错误:Microsoft ODBC Driver 11 for SQL Server:建立与 SQL Server 的连接时出现网络相关或特定于实例的错误。服务器未找到或无法访问。检查实例名称是否正确以及 SQL Server 是否配置为允许远程连接。有关详细信息,请参阅 SQL Server 联机丛书。

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

提前致谢。

【问题讨论】:

    标签: shell sqlcmd


    【解决方案1】:

    这对于 sqlcmd 可能是不可能的,因为错误源于连接服务器,一旦发生错误,它会立即终止 sqlcmd。

    如果你可以使用powershell,你可能会发现使用invoke-sqlcmd 的运气。

    Powershell Try Catch invoke-sqlcmd

    【讨论】:

    • 知道了。不幸的是,我不能使用 Powershell。有没有一种简单的方法来区分sqlcmd 是否成功。我只想向用户报告使用 shell 脚本连接 SQLEXPRESS 时出现问题。
    猜你喜欢
    • 2014-12-15
    • 2020-01-21
    • 2011-02-07
    • 1970-01-01
    • 2011-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多