Guardar en txt

11/11/2009 - 09:35 por José Antonio Muñoz | Informe spam
Hola a todos,

¿como puedo guardar el contenido de una variable de Sql Server en un archivo
txt de una forma sencilla y sin utilizar el comando bcp?

saludos,
José Antonio Muñoz

Preguntas similare

Leer las respuestas

#11 José Antonio Muñoz
12/11/2009 - 09:35 | Informe spam
Estoy intentando ejecutar el comando bcp con xp_cmdshell de la siguiente
forma (necesito exportar en formato xml):

EXEC xp_cmdshell 'bcp basedatos..clientes format nul -T -c -x -f
C:\PRUEBA\PRUEBA.xml'

y no funciona. Me da un error diciendo "el servidor no se encuentra o no
está disponible".

Nota: En el Sql server 2008 express que tengo instalado solo existe
autentificación de sql y no existe autentificación de windows, ya que se han
eliminado las cuentas correspondientes.

José Antonio Muñoz.

"Carlos Sacristan" escribió en el mensaje de noticias
news:
sí, un procedimiento hecho en .NET (VB o C#)

"Caminar sobre el agua y desarrollar software a partir de unas
especificaciones es fácil, si ambas están congeladas."
Edward V. Berard, ingeniero informático


"José Antonio Muñoz" wrote in message
news:%
¿Procedimiento CLR?

"Carlos Sacristan" escribió en el mensaje de noticias
news:
No es que no funcione, es que no existe SQL Agent en la versión Express.

La opción de usar bcp dentro de un job digamos que es una vía para salir
del paso. Pienso que lo mejor sería usar un procedimiento CLR

"Caminar sobre el agua y desarrollar software a partir de unas
especificaciones es fácil, si ambas están congeladas."
Edward V. Berard, ingeniero informático


"José Antonio Muñoz" wrote in message
news:%
Una cosita, se me olvidaba decirte que utilizo Sql Server 2008 Express
y tengo entendido que en esta versión no funciona el Agente de sql

José Antonio Muñoz.

"Carlos Sacristan" escribió en el mensaje de
noticias news:
Pues, yendo punto por punto:

-Efectivamente, como tú dices pueden darse muchas circunstancias.
Puede que el administrador de sistemas tenga establecidas ciertas
limitaciones en la ejecución de programas, pero si tu aplicación lo
necesita hay que tratarlo como un requisito más. Es decir, igual que
necesitas SQL Server o .NET para tu aplicación (un suponer), pues
también necesitas que te permita ejecutar bcp.

- Usar bcp no implica necesariamente el uso de xp_cmdshell. Puedes
ejecutar bcp dentro de un job y ejecutarlo posteriormente mediante
sp_start_job

- bcp se encuentra en el PATH del sistema cuando se instala SQL
Server, así que no hay que especificar su ubicación

En cualquier modo, si yo estuviera en tu caso (desarrollando una nueva
aplicación), lo que haría sería un procedimiento CLR que se encargara
de escribir a disco el resultado de esa variable. Mucho más eficiente
y menos problemático que usar automatización OLE


"Caminar sobre el agua y desarrollar software a partir de unas
especificaciones es fácil, si ambas están congeladas."
Edward V. Berard, ingeniero informático


"José Antonio Muñoz" wrote in message
news:
Teniendo en cuenta que estoy desarrollando un script para poder
ejecutarlo en diferentes máquinas con Sql Server y siendo la utilidad
BCP un ejecutable externo. Que ocurriría si:

- No se puede ejecutar bcp.exe en algún Sistema Operativo como
Windows 2003 Server que tiene restringido el uso y ejecución de
ciertos programas.
- Por algún motivo no se puede utilizar xp_cmdshell (en el sistema
operativo X no tiene permisos para ejecutar programas o comando de
ms-dos)
- bcp.exe se encuentra en alguna carpeta de sql server, al ejecutar
bcp con el comando xp_cmdshell ¿es necesario especificar la ruta
donde se encuentra la utilidad?

No se me ocurre otros inconvenientes, pero ejecutar un programa desde
un script de sql server ... no sé si sería buena idea. Ahora bien si
tú me dices que ejecutar bcp es algo rutinario desde un script de sql
server e independiente del sistema operativo y de la configuración de
éste, lo mismo me planteo utilizarlo.

saludos,
José Antonio Muñoz.

"Carlos Sacristan" escribió en el mensaje de
noticias news:
¿Por qué no quieres usar bcp? Creo que sería lo más sencillo...

"Caminar sobre el agua y desarrollar software a partir de unas
especificaciones es fácil, si ambas están congeladas."
Edward V. Berard, ingeniero informático


"José Antonio Muñoz" wrote in message
news:
Hola a todos,

¿como puedo guardar el contenido de una variable de Sql Server en
un archivo txt de una forma sencilla y sin utilizar el comando bcp?

saludos,
José Antonio Muñoz






















Respuesta Responder a este mensaje
#12 Carlos Sacristan
12/11/2009 - 09:56 | Informe spam
No estás llamando con los valores correctos a bcp:

- en primer lugar no estás indicando el servidor (parámetro -S). Cuando
esto es así (el parámetro no es obligatorio), bcp intenta conectarse a la
instancia predeterminada de la máquina en la que se está ejecutando
- en segundo lugar estás intentando conectarte por autenticación
integrada (-T) y tú mismo has dicho que todos los logins son de SQL Server

Echa un vistazo en los BOL al tema "bcp Utility" para conocer los parámetros
y el uso que tienes que hacer de ellos.

"Caminar sobre el agua y desarrollar software a partir de unas
especificaciones es fácil, si ambas están congeladas."
Edward V. Berard, ingeniero informático


"José Antonio Muñoz" wrote in message
news:%
Estoy intentando ejecutar el comando bcp con xp_cmdshell de la siguiente
forma (necesito exportar en formato xml):

EXEC xp_cmdshell 'bcp basedatos..clientes format nul -T -c -x -f
C:\PRUEBA\PRUEBA.xml'

y no funciona. Me da un error diciendo "el servidor no se encuentra o no
está disponible".

Nota: En el Sql server 2008 express que tengo instalado solo existe
autentificación de sql y no existe autentificación de windows, ya que se
han eliminado las cuentas correspondientes.

José Antonio Muñoz.

"Carlos Sacristan" escribió en el mensaje de noticias
news:
sí, un procedimiento hecho en .NET (VB o C#)

"Caminar sobre el agua y desarrollar software a partir de unas
especificaciones es fácil, si ambas están congeladas."
Edward V. Berard, ingeniero informático


"José Antonio Muñoz" wrote in message
news:%
¿Procedimiento CLR?

"Carlos Sacristan" escribió en el mensaje de
noticias news:
No es que no funcione, es que no existe SQL Agent en la versión
Express.

La opción de usar bcp dentro de un job digamos que es una vía para
salir del paso. Pienso que lo mejor sería usar un procedimiento CLR

"Caminar sobre el agua y desarrollar software a partir de unas
especificaciones es fácil, si ambas están congeladas."
Edward V. Berard, ingeniero informático


"José Antonio Muñoz" wrote in message
news:%
Una cosita, se me olvidaba decirte que utilizo Sql Server 2008 Express
y tengo entendido que en esta versión no funciona el Agente de sql

José Antonio Muñoz.

"Carlos Sacristan" escribió en el mensaje de
noticias news:
Pues, yendo punto por punto:

-Efectivamente, como tú dices pueden darse muchas circunstancias.
Puede que el administrador de sistemas tenga establecidas ciertas
limitaciones en la ejecución de programas, pero si tu aplicación lo
necesita hay que tratarlo como un requisito más. Es decir, igual que
necesitas SQL Server o .NET para tu aplicación (un suponer), pues
también necesitas que te permita ejecutar bcp.

- Usar bcp no implica necesariamente el uso de xp_cmdshell. Puedes
ejecutar bcp dentro de un job y ejecutarlo posteriormente mediante
sp_start_job

- bcp se encuentra en el PATH del sistema cuando se instala SQL
Server, así que no hay que especificar su ubicación

En cualquier modo, si yo estuviera en tu caso (desarrollando una
nueva aplicación), lo que haría sería un procedimiento CLR que se
encargara de escribir a disco el resultado de esa variable. Mucho más
eficiente y menos problemático que usar automatización OLE


"Caminar sobre el agua y desarrollar software a partir de unas
especificaciones es fácil, si ambas están congeladas."
Edward V. Berard, ingeniero informático


"José Antonio Muñoz" wrote in message
news:
Teniendo en cuenta que estoy desarrollando un script para poder
ejecutarlo en diferentes máquinas con Sql Server y siendo la
utilidad BCP un ejecutable externo. Que ocurriría si:

- No se puede ejecutar bcp.exe en algún Sistema Operativo como
Windows 2003 Server que tiene restringido el uso y ejecución de
ciertos programas.
- Por algún motivo no se puede utilizar xp_cmdshell (en el sistema
operativo X no tiene permisos para ejecutar programas o comando de
ms-dos)
- bcp.exe se encuentra en alguna carpeta de sql server, al ejecutar
bcp con el comando xp_cmdshell ¿es necesario especificar la ruta
donde se encuentra la utilidad?

No se me ocurre otros inconvenientes, pero ejecutar un programa
desde un script de sql server ... no sé si sería buena idea. Ahora
bien si tú me dices que ejecutar bcp es algo rutinario desde un
script de sql server e independiente del sistema operativo y de la
configuración de éste, lo mismo me planteo utilizarlo.

saludos,
José Antonio Muñoz.

"Carlos Sacristan" escribió en el mensaje de
noticias news:
¿Por qué no quieres usar bcp? Creo que sería lo más sencillo...

"Caminar sobre el agua y desarrollar software a partir de unas
especificaciones es fácil, si ambas están congeladas."
Edward V. Berard, ingeniero informático


"José Antonio Muñoz" wrote in message
news:
Hola a todos,

¿como puedo guardar el contenido de una variable de Sql Server en
un archivo txt de una forma sencilla y sin utilizar el comando
bcp?

saludos,
José Antonio Muñoz

























Respuesta Responder a este mensaje
#13 Maxi Accotto
12/11/2009 - 11:58 | Informe spam
Hola, usando .NET podria ser una forma simple



Maxi Accotto
MVP en SQL Server
http://blog.maxiaccotto.com

"José Antonio Muñoz" wrote in message
news:
Hola a todos,

¿como puedo guardar el contenido de una variable de Sql Server en un
archivo txt de una forma sencilla y sin utilizar el comando bcp?

saludos,
José Antonio Muñoz

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida