2011-09-14 37 views
2

连接使用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)\”,这是不是一个很大的帮助。

任何帮助?

回答

0

我发现这个最好的解决办法是设置使用PowerShell或DOS脚本变量。

1

难道你们就不能使用类似

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

否。因为服务器和实例的名称被设置为环境变量,并且您不能在sqlcmd中设置另一个变量的变量值。我已经通过使用DOS命令设置变量来暂时解决这个问题,但它并不理想。 –