Escribir en fichero de texto desde T-SQL

23/11/2004 - 11:03 por Capt_Huevo | Informe spam
Hola a todos,

Ahí va mi pregunta:
Es posible escribir en un fichero de texto desde instrucciones T-SQL. Mi
idea es construir un típico fichero de LOG, para un procedure. Mi
intención es dejar constancia en ese fichero de log de lo sucedido
durante la ejecución del procedure.
He encontrado una forma:

master..xp_cmdshell 'echo algo que escribir >> C:\log.txt'

...pero utilizar este procedimiento... no sé, me da un poco de miedo por
cuestiones de seguridad. Lo encuentro algo peligroso (por su potencia).
Además no sé si este tipo de escritura (tomada un poco por los pelos) es
realmente eficiente, ¿existe alguna otra forma?

Gracias a todos!

Capt. Huevo
DBA en ciernes
 

Leer las respuestas

#1 Rubén Vigón
23/11/2004 - 11:41 | Informe spam
Puedes usar un objeto «Scripting.FileSystemObject» mediante automatización (sp_OACreate, sp_OAMethod, sp_OADestroy, etc) y sus métodos «CreateTextFile» y «WriteLine»; por ejemplo:

DECLARE @hr int, @obj int, @arch int
EXEC @hr = sp_OACreate 'Scripting.FileSystemObject', @obj OUTPUT
EXEC @hr = sp_OAMethod @obj, 'CreateTextFile', @arch OUTPUT, 'c:\holamundo.txt'
EXEC @hr = sp_OAMethod @obj, 'WriteLine', NULL, 'Hola mundo!'

Un saludo!

Rubén Vigón
Microsoft MVP Visual Basic
http://www.mvp-access.com/rubenvigon

Preguntas similares