Ejecutar sql mediante xp_cmdshell

17/07/2008 - 23:44 por OJVM | Informe spam
Buenas tardes a todos. bueno pues estoy tratando de ejecutar una
sentencia sql y mandar el resultado a un archivo de texto.

La cuestion esta en que si se genera el archivo de texto pero me
arroja el siguiente texto.

Msg 137, Level 15, State 2, Server xxxxxxxxx, Line 1
Must declare the variable '@qryPermisos'.

y este es codigo con el que trato de generarlo. les agradesco de
antemano la ayuda que me puedan proporcionar.

declare @claveEmpresa char(3)
declare @qryPermisos varchar(1000)
declare @permisos char(1)
declare @cmd varchar(1000)

set @claveEmpresa = '001'
set @permisos = 'P'

set @qryPermisos = 'SELECT ' + @claveEmpresa + ' AS empresa,
e.EMPNUMEMP AS empleado, a.Asisfecha AS fecha, e.EMPXTRA10 AS nomina,
a.AsisPermCuenta FROM ASISTENCIA AS a INNER JOIN EMPLEADO AS e ON
e.EMPNUMINT = a.EMPNUMINT where a.asispermiso = ' + @permisos
set @cmd = 'osql -P -S -Q @qryPermisos -o "c:\exportacionReloj
\archivoAsistencias.txt" -w2000'
exec master..xp_cmdshell @cmd
GO
 

Leer las respuestas

#1 Gustavo Larriera (MVP)
18/07/2008 - 04:24 | Informe spam
Modifique asi:

set @cmd = 'osql -P -S -Q '+' " '+ @qryPermisos + ' " ' +
' -o "c:\exportacionReloj\archivoAsistencias.txt" -w2000'



Gustavo Larriera, Microsoft MVP
http://www.linkedin.com/in/gustavolarriera
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"OJVM" wrote:

Buenas tardes a todos. bueno pues estoy tratando de ejecutar una
sentencia sql y mandar el resultado a un archivo de texto.

La cuestion esta en que si se genera el archivo de texto pero me
arroja el siguiente texto.

Msg 137, Level 15, State 2, Server xxxxxxxxx, Line 1
Must declare the variable '@qryPermisos'.

y este es codigo con el que trato de generarlo. les agradesco de
antemano la ayuda que me puedan proporcionar.

declare @claveEmpresa char(3)
declare @qryPermisos varchar(1000)
declare @permisos char(1)
declare @cmd varchar(1000)

set @claveEmpresa = '001'
set @permisos = 'P'

set @qryPermisos = 'SELECT ' + @claveEmpresa + ' AS empresa,
e.EMPNUMEMP AS empleado, a.Asisfecha AS fecha, e.EMPXTRA10 AS nomina,
a.AsisPermCuenta FROM ASISTENCIA AS a INNER JOIN EMPLEADO AS e ON
e.EMPNUMINT = a.EMPNUMINT where a.asispermiso = ' + @permisos
set @cmd = 'osql -P -S -Q @qryPermisos -o "c:\exportacionReloj
\archivoAsistencias.txt" -w2000'
exec master..xp_cmdshell @cmd
GO

Preguntas similares