SqlCmd:连接变量和反斜杠

时间:2011-09-14 14:20:23

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

当使用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)\”,这不是很多帮助。

有人帮忙吗?

2 个答案:

答案 0 :(得分:1)

你能不能使用像

这样的东西
:setvar serverandinstance server\instance
:connect $(serverandinstance)

答案 1 :(得分:0)

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