Em um script eu tenho a diretiva
:connect DbServer
e parece que se eu executar este script no SQLCMD (assim:
sqlcmd -i script.sql
em seguida, o sqlcmd tenta se conectar usando Pipes Nomeados (o que não funciona). Recebo mensagens de erro dizendo que o provedor Named Pipes não pôde se conectar. No entanto, se eu tentar me conectar ao mesmo servidor especificando seu nome no parâmetro -S, ele funcionará bem.
Existe uma maneira de informar a diretiva :connect que estou tentando me conectar por TCP/IP?
Eu tentei usar :connect tcp:DbServer sem sucesso. Também tentei ir pelo endereço IP, mesmos resultados. Nesta máquina não tenho o SQL Server Configuration Manager para especificar aliases connectino ou manipular protocolos. Talvez seja a próxima coisa a fazer, mas gostaria de saber se alguém conhece uma maneira de conter a especificação de conexão dentro do script.
sqlcmd.exe -S tcp:myserver
ousqlcmd.exe -S tcp:myserver\instance
deve fazer o truque. Se você precisar especificar a porta, faça assim:sqlcmd.exe -S tcp:myserver,1433
A propósito, a documentação do SQLCMD está disponível diretamente da Microsoft , onde declara a sintaxe do parâmetro -S como:
O modo SQLCMD no SQL Server Management Studio aceita precisamente a mesma sintaxe.
Então: