При использовании 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
Это вызывает синтаксисошибка, я подозреваю, потому что она думает, что обратная косая черта является escape-символом.
Это не помогает:
:connect '$(serv)\$(inst)' -U myLogin -P myPassword
И это не так:
:connect $(serv)\\\\$(inst) -U myLogin -P myPassword
И я не могу понять, как sqlCmd должен объединять переменные, поэтому я не могу передать все это как переменную.Если вы попытаетесь установить переменную следующим образом:
:setvar serv myServer
:setvar myVariable $(serv)\
Тогда она буквально устанавливает myVariable в значение "$ (serv) \", что не очень помогает.
Любая помощь