【问题标题】:SqlCmd :connect with variables and backslashSqlCmd :连接变量和反斜杠
【发布时间】:2011-09-14 14:20:23
【问题描述】:

当使用 SqlCmd 尝试连接到活动服务器时,我发现这两个都可以工作:

:connect myServer\myInstanceName -U myLogin -P myPassword

:setvar INSTANCE myInstanceName
:connect $(INSTANCE) -U myLogin -P myPassword

这不是:

:setvar serv myServer
:setvar inst myInstance
:connect $(serv)\$(inst) -U myLogin -P myPassword

我怀疑它会将此作为语法错误抛出,因为它认为反斜杠是转义字符。

这样做没有帮助:

:connect '$(serv)\$(inst)' -U myLogin -P myPassword

这也不是:

:connect $(serv)\\\\$(inst) -U myLogin -P myPassword

而且我无法弄清楚 sqlCmd 应该如何连接变量,因此我无法将整个内容作为变量传递。如果您尝试设置这样的变量:

 :setvar serv myServer
 :setvar myVariable $(serv)\

然后它将 myVariable 设置为“$(serv)\”,这并没有多大帮助。

有人帮忙吗?

【问题讨论】:

    标签: sql-server tsql batch-file dos sqlcmd


    【解决方案1】:

    你能不能不使用类似的东西

    :setvar serverandinstance server\instance
    :connect $(serverandinstance)
    

    【讨论】:

    • 没有。因为服务器和实例的名称被设置为环境变量,并且您不能从 sqlcmd 中的另一个变量设置变量值。我已经通过使用 DOS 命令设置变量暂时解决了这个问题,虽然可行,但并不理想。
    【解决方案2】:

    我发现的最佳解决方案是使用 powershell 或 DOS 脚本设置变量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-31
      • 1970-01-01
      • 2010-12-14
      • 2022-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多