No puedo hacer que SQLCMD funcione independientemente de lo que intente

10

Independientemente de lo que haga, no puedo hacer que SQLCMD funcione. Estoy tratando de ejecutar un script que tiene un tamaño de más de 200 MB y no se puede ejecutar desde la aplicación del servidor SQL, por lo que necesito hacerlo a través de SQLCMD, sin embargo, cada vez que intento iniciar sesión o ejecutar el script, se cierra inmediatamente.

He seguido la utilidad sqlcmd por msdn.

He intentado abrirlo mediante el comando de confianza 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..

He intentado a través del servidor explícito, el nombre de usuario y la declaración de contraseña:

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
fuente

Respuestas:

23

SQLCMD, cuando se invoca sin especificar un nombre de servidor, intenta conectarse a una instancia predeterminada en la máquina local. Si no tiene uno, muestra el primer error que está recibiendo. Use el -Sparámetro para especificar un nombre de servidor.

Para usar la autenticación de Windows, use la -Ebandera y no necesita proporcionar nombre de usuario o contraseña.
Ejemplo: SQLCMD -Smyserver\myinstance -E

Para usar la autenticación de SQL Server, use los parámetros -Uy -Ppara proporcionar credenciales.
Ejemplo: SQLCMD -Smyserver\myinstance -UsomeUser -PhisPassword

Si especifica -Uque no puede usar un nombre de usuario de Windows: esto es para inicios de sesión de SQL Server. Si desea suplantar a un usuario de Windows diferente, inicie un símbolo del sistema que suplante a ese usuario primero.

Ejemplo:

  1. Abrir símbolo del sistema
  2. Tipo runas /USER:domain\username cmd
  3. Escriba la contraseña para su usuario
  4. correr SQLCMD

Puede lograr el mismo resultado haciendo clic derecho en el enlace de cmd y seleccionando "Ejecutar como usuario diferente ..."

spaghettidba
fuente
Esto me salvó una larga noche de buscar en internet. ¡Gracias!
Rhys Johns
Pasé años tratando de resolver esto. ¡Gracias!
Joel Murphy