Não é possível fazer o SQLCMD funcionar, independentemente do que eu tente

10

Independentemente do que faço, não consigo fazer o SQLCMD funcionar. Estou tentando executar um script com mais de 200mb de tamanho e não pode ser executado no aplicativo sql server, portanto, preciso fazer isso via SQLCMD, no entanto, sempre que tento fazer login ou executar o script, ele é fechado imediatamente.

Eu segui o utilitário sqlcmd pelo msdn.

Eu tentei abri-lo através do comando confiável SQLCMD -EI get:

Sqlcmd: Error: Microsoft SQL Server Native Client 11.0 : Named Pipes Provider: Could not open a connection to SQL Server [2]. .
Sqlcmd: Error: Microsoft SQL Server Native Client 11.0 : Login timeout expired.
Sqlcmd: Error: Microsoft SQL Server Native Client 11.0 : A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. For more information see SQL Server Books Online..

Eu tentei via servidor explícito, nome de usuário e declaração de senha:

C:\Users\MyUserName\Documents>SQLCMD -S DESKTOP-1N3OD6V\SQLEXPRESS -U DESKTOP-1N3OD6V\MyUserName-P MyPassword
Sqlcmd: Error: Microsoft SQL Server Native Client 11.0 : Login failed for user 'DESKTOP-1N3OD6V\MyUserName'..
TheAkhemist
fonte

Respostas:

23

SQLCMD, quando chamado sem especificar um nome de servidor, tenta se conectar a uma instância padrão na máquina local. Se você não tiver um, ele exibirá o primeiro erro que você está recebendo. Use o -Sparâmetro para especificar um nome de servidor.

Para usar a autenticação do Windows, use o -Esinalizador e você não precisa fornecer nome de usuário ou senha.
Exemplo: SQLCMD -Smyserver\myinstance -E

Para usar a autenticação do SQL Server, use os parâmetros -Ue -Ppara fornecer credenciais.
Exemplo: SQLCMD -Smyserver\myinstance -UsomeUser -PhisPassword

Se você especificar, -Unão poderá usar um nome de usuário do Windows: isto é para logons do SQL Server. Se você deseja representar um usuário diferente do Windows, inicie um prompt de comando representando esse usuário primeiro.

Exemplo:

  1. Abrir prompt de comando
  2. Tipo runas /USER:domain\username cmd
  3. Digite a senha do seu usuário
  4. Corre SQLCMD

Você pode obter o mesmo resultado clicando com o botão direito do mouse no link para cmd e selecionando "Executar como Usuário Diferente ..."

spaghettidba
fonte
Isso só me salvou uma longa noite vasculhando a internet. Obrigado!
Rhys Johns
Passamos idades tentando resolver isso. Obrigado!
Joel Murphy #