2011-02-22 16 views
6

Estoy tratando de usar sqlcmd para ejecutar algunos scripts SQL.sqlcmd no se ejecutará - ¿Es esto un problema de configuración?

El uso de un comando de prueba con una consulta simple como:

sqlcmd -S HOSTNAME -d MYDATABASE -Q 'SELECT Names FROM Customers' 

sqlcmd no parece hacer cualquier intento de conectar con el servidor ya que muestra este mensaje:

Sqlcmd: Error: Connection failure.
SQL Native Client is not installed correctly. To correct this, run SQL Server Setup.

El cliente nativo fue presumiblemente instalado como parte de la instalación de SQL Server y probablemente sea correcto. De hecho, recibo este mensaje en cualquier máquina con el servidor SQL instalado tratando de usar sqlcmd, por lo que no es una cuestión de que la instalación esté dañada.

Lamentablemente, el mensaje realmente no me dice nada sobre el problema, así que no sé cuál es el verdadero problema. Sé que el cliente SQL Native está funcionando correctamente, ya que vbscript pudo ejecutar consultas SQL en la base de datos.

¿Se necesita alguna configuración adicional para usar sqlcmd?

+0

Si publica ejemplos de código, XML o de datos, por favor ** ** destacar aquellas líneas en el editor de texto y hacer clic en "ejemplos de código "botón (' {} ') en la barra de herramientas del editor para formatear y sintaxis y ¡resaltarlo! –

+0

Esto pertenece a serverfault.com o superuser.com –

+0

@Jim ¿En función de qué criterios? http://stackoverflow.com/faq '" Entusiastas de la informática y usuarios avanzados "'? Lo mantengo sobre la base de '# herramientas de software comúnmente utilizadas por los programadores' – RichardTheKiwi

Respuesta

0

I know the SQL Native client is working properly since a vbscript was able to execute SQL queries against the database.

No, no. Solo sabe que ALGÚN cliente funciona, pero no necesariamente el cliente SQL Native.

Todas las carreteras conducen a Roma http://www.connectionstrings.com/sql-server-2008 (consulte la lista de proveedores), pero una está bloqueada.

Simplemente realice una configuración de reparación/modificación desde el Panel de control, o instale otra instancia (asegurándose de que el cliente nativo está instalado), luego quítela nuevamente.

+0

Bueno, las herramientas que se envían con SQL Server, como Management Studio, dependen de SQL Native Client y funcionan correctamente, lo que sugiere que el cliente funciona. He intentado desinstalar y volver a instalar el cliente nativo que no tiene ningún efecto. – nuit9

+0

@ nuit9 SSMS en realidad no usa SQL Native Client. Utiliza el controlador ODBC sqlsrv32.dll para realizar la conexión a una instancia de SQL Server. Prueba de esto se puede hacer utilizando ProcessExplorer y hacer una búsqueda de los dos archivos DLL después de conectarse a una instancia con SSMS. –

14

Tuve el mismo error. Después de muchas búsquedas y reinstalaciones, revisé mi RUTA por algo no relacionado. A medida que el software de trabajo en ha pasado por MSDE 2005 Express y ahora 2008 Express R2, mi instrucción PATH tenía estas entradas:

c:\Program Files\Microsoft SQL Server\80\Tools\Binn\;C:\Program Files\Microsoft SQL Server\90\Tools\binn\;c:\Program Files\Microsoft SQL Server\100\Tools\Binn\

que eliminan las entradas 80 y 90 y dejó de recibir el error. Probé y la instalación de 2005 Express todavía respondía a la entrada de SQLCMD sin problemas.

+2

Tuve el mismo problema después de instalar SQL Server 2012 y cuando revisé el valor de la variable de entorno PATH, encontré que había entradas duplicadas para Sql Server 2012 (carpeta denominada 110) y Sql Server 2008 (carpeta denominada 100). Así que siempre se recogió SQLCMD de la carpeta Sql Server 2008 aunque el cliente nativo instalado era Sql Server 2012 y yo había desinstalado Sql Server 2008. De ahí el error. Eliminé las entradas que tenían la carpeta "100" y todo estaba bien. Básicamente, MS necesita hacer un mejor trabajo de limpieza durante la desinstalación del servidor Sql. –

+1

Gracias! Tuve el mismo problema después de instalar SQL Server 2012. Eliminé la entrada "100" y dejé la entrada "110" sola. Ahora funciona :) – user952342

3

Me encontré con este error al ejecutar el comando sqlcmd. Para solucionar esto, me quita las partes innecesarias de la variable PATH medio ambiente, y añade lo siguiente:

C:\Program Files\Microsoft SQL Server\110\DTS\Binn\;C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\ManagementStudio\;C:\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn\ 

este camino es para SQL Server 2012

+0

Define "partes innecesarias". Messing con variables de entorno es peligroso, especialmente PATH. –

1

También conseguía este error con MS SQL Server 2014 .

Sqlcmd: Error: Connection failure. SQL Native Client is not installed correctly. To correct this, run SQL Server Setup.

En primer lugar, confirme que de SQL Server Native Client está instalado. Como se especifica en MSDN, los archivos bcp.exe y SQLCMD.exe deben ubicarse en el directorio siguiente.

<Install Directory>\Client SDK\ODBC\110\Tools\Binn 

Si los archivos no están allí, puede descargar e instalar el cliente desde the Microsoft Download center, utilizando ENU \ x86 \ sqlncli.msi o ENU \ x64 \ SQLNCLI.msi. MSSQL 2014 usa el cliente 2012

Una vez hecho esto, debe poder usar SQLCMD sin problemas.

variable de entorno Path en mi máquina contiene las siguientes entradas:

C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\110\Tools\Binn 
C:\Program Files (x86)\Microsoft SQL Server\120\Tools\Binn\ManagementStudio\ 
C:\Program Files (x86)\Microsoft SQL Server\120\DTS\Binn\ 
C:\Program Files (x86)\Microsoft SQL Server\120\Tools\Binn\ 
Cuestiones relacionadas