Crear un csv con sqlcmd

Estoy tratando de crear un csv usando el comando SQL. Estoy usando una tabla simple como prueba. He escrito esto hasta ahora:

DECLARE @sql VARCHAR(1000),
        @cmd VARCHAR(100),
        @sqlCommand VARCHAR(1000)

Set @cmd = 'Select * From DSG.Pawtucket.counts'

SET @sqlCommand = 'SQLCMD -S <server> -U <user> -P <password> -d <database> -W -Q "' + @cmd + '"
-s "|" -o <network path> -h-1' 

EXEC master.dbo.xp_cmdshell @sqlCommand

Veo los resultados de la consulta en la pestaña "resultados" y no recibo errores, pero mi archivo nunca se crea. Sé que estoy usando una ruta de red válida. Incluso intenté crear el archivo en la unidad C: local del servidor SQL sin éxito. También intenté usar bcp con mucha frustración y sin resultados. ¡Cualquier ayuda sería muy apreciada!

preguntado el 03 de mayo de 12 a las 22:05

1 Respuestas

Deshágase del salto de línea en la cadena literal

Que escribiste

SET @sqlCommand = 'SQLCMD -S <server> -U <user> -P <password> -d <database> -W -Q "' + @cmd + '"
-s "|" -o <network path> -h-1' 

Envía dos comandos a xp_cmdshell

El primer comando que le da los resultados de @cmd en su pestaña de resultados.

SET @sqlCommand = 'SQLCMD -S <server> -U <user> -P <password> -d <database> -W -Q "' + @cmd + '"    

Y luego esto que no hace nada

   -s "|" -o <network path> -h-1'  

A continuación se muestra lo que desea. Además de eliminar el retorno de carro, también agregué el espacio después de '" ya que -s necesita ser separado de lo que sea que esté en @cmd

SET @sqlCommand = 'SQLCMD -S <server> -U <user> -P <password> -d <database> -W -Q "' + @cmd 
+ '" -s "|" -o <network path> -h-1' 

contestado el 03 de mayo de 12 a las 23:05

Gracias, eso fue todo! Ahora solo tengo que reparar ese enorme agujero que hice en la pared al golpearme la cabeza contra ella. En serio... te lo agradezco. Debería haber podido darme cuenta de eso, pero ya estaba tan frustrado que un par de ojos frescos realmente ayudaron. - cloud311

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.