| |||
Ayuda con resultado en en txt Saludos, bueno tengo un problema todos los dias realizo un procedimiento que este a su vez me hace una consulta amis tablas, pero me gustaria saber si hay alguna forma de que esa consulta me la arrojara en un archivo .txt si alguien sabe de algun modo les agradeceria la informacion |
| |||
Cita: Gracias amigo lo realice con los DTS como me lo recomiendas, aunque como puntualzas me lo hace calendarizado, pero bueno por el momento me saco del problema de ante mano muchas gracias
Iniciado por Mithrandir Revisa la parte de DTS, con eso puedes hacer una tarea que haga la exportación. El punto "malo" es que generalmente eso se ejecuta calendarizado, no por demanda. Revisa si BCP (un programa incluído con las herramientas de sql server)te lo permite, puede leer de archivos de texto hacia la DB, pero no recuerdo si se puede en sentido inverso. |
| |||
/*********************************************/ /*********************************************/ /** Les Paso mi Aportación respecto a este Tema espero **/ /** Que les Ayude *******************************/ /*********************************************/ /* SP_Resp_Tabla_Disco '\\Servidor_1\F$\Resp\','Nom_Tabla','ArchTexto.Txt ','sa','1','Ejemplo' Nota : Decripcion de los Parametros 1) Ruta donde se dejara la información de la Tabla que esta en SQL-Server 2) Nombre de la Tabla en SQL-Server 3) Nombre con el que quieres que se quede el archivo de Text 4) Usuario con derechos de Admin 5) Password del usuario 6) Nombre de la BD del Servidor Ejemplo El ejecutar el procedimiento SP_Resp_Tabla_Disco Respaldara la tabla a TXT El ejecutar el procedimiento SP_Recupera_TxT_BD Sube la información de TXT a SQL-Server Los parametros que tiene el BCP son para que la tabla ya exista en el servidor en el que subiras la tabla txt. Si quieres que se cree te lo dejo de tare */ If Exists(Select * From Sysobjects Where Name = 'SP_Resp_Tabla_Disco') Drop Proc SP_Resp_Tabla_Disco Go Create Proc SP_Resp_Tabla_Disco @Ruta Varchar(100), @TablaSQL Varchar(100), @NomArchTXT Varchar(100), @Login Varchar(100), @Password Varchar(100), @NomBD Varchar(100) AS Begin Declare @Text1 Varchar(100), @Text2 Varchar(100), @result Int, @Bodega Varchar(10) select @Text1 = 'dir '+ ltrim(rtrim(@Ruta)) + ltrim(rtrim(@NomArchTXT)) EXEC @result = master..xp_cmdshell @text1 IF (@result > 0 ) BEGIN select @Text2 = 'bcp '+ltrim(rtrim(@NomBD))+'..'+ltrim(rtrim(@TablaSQL) )+' out ' select @Text2 = @Text2 + ltrim(rtrim(@Ruta)) + ltrim(rtrim(@NomArchTXT)) select @Text2 = @Text2 + ' -c -U'+ltrim(rtrim(@Login))+' -P'++ltrim(rtrim(@Password)) EXEC master..xp_cmdshell @Text2 Print 'R e s p a l d a d o' EXEC @result = master..xp_cmdshell @Text1 END End Go Grant All on SP_Resp_Tabla_Disco to Public ----------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------- /* SP_Recupera_TxT_BD '\\Servidor_1\F$\Resp\','Nom_Tabla','ArchTexto.Txt ','sa','1','Ejemplo' */ If Exists(Select * From Sysobjects Where Name = 'SP_Recupera_TxT_BD') Drop Proc SP_Recupera_TxT_BD Go Create Proc SP_Recupera_TxT_BD @Ruta Varchar(100), @TablaSQL Varchar(100), @NomArchTXT Varchar(100), @Login Varchar(100), @Password Varchar(100), @NomBD Varchar(100) AS Begin Declare @Text1 Varchar(100), @Text2 Varchar(100), @result Int, @Bodega Varchar(10) select @Text1 = 'dir '+ ltrim(rtrim(@Ruta)) + ltrim(rtrim(@NomArchTXT)) EXEC @result = master..xp_cmdshell @text1 IF (@result <= 0 ) BEGIN select @Text2 = 'bcp '+ltrim(rtrim(@NomBD))+'..'+ltrim(rtrim(@TablaSQL) )+' in ' select @Text2 = @Text2 + ltrim(rtrim(@Ruta)) + ltrim(rtrim(@NomArchTXT)) select @Text2 = @Text2 + ' -c -U'+ltrim(rtrim(@Login))+' -P'++ltrim(rtrim(@Password)) Print 'R e s p a l d a n d o' EXEC @result = master..xp_cmdshell @Text2 END End Go Grant All on SP_Recupera_TxT_BD to Public |
| |||
Cita: No me guarda los datos en el txt, me corre bien sin problemas pero me deja el archivo txt en blanco debo estar haciendolo mal
Iniciado por Gabriel Sanchez /*********************************************/ /*********************************************/ /** Les Paso mi Aportación respecto a este Tema espero **/ /** Que les Ayude *******************************/ /*********************************************/ /* SP_Resp_Tabla_Disco '\\Servidor_1\F$\Resp\','Nom_Tabla','ArchTexto.Txt ','sa','1','Ejemplo' Nota : Decripcion de los Parametros 1) Ruta donde se dejara la información de la Tabla que esta en SQL-Server 2) Nombre de la Tabla en SQL-Server 3) Nombre con el que quieres que se quede el archivo de Text 4) Usuario con derechos de Admin 5) Password del usuario 6) Nombre de la BD del Servidor Ejemplo El ejecutar el procedimiento SP_Resp_Tabla_Disco Respaldara la tabla a TXT El ejecutar el procedimiento SP_Recupera_TxT_BD Sube la información de TXT a SQL-Server Los parametros que tiene el BCP son para que la tabla ya exista en el servidor en el que subiras la tabla txt. Si quieres que se cree te lo dejo de tare */ If Exists(Select * From Sysobjects Where Name = 'SP_Resp_Tabla_Disco') Drop Proc SP_Resp_Tabla_Disco Go Create Proc SP_Resp_Tabla_Disco @Ruta Varchar(100), @TablaSQL Varchar(100), @NomArchTXT Varchar(100), @Login Varchar(100), @Password Varchar(100), @NomBD Varchar(100) AS Begin Declare @Text1 Varchar(100), @Text2 Varchar(100), @result Int, @Bodega Varchar(10) select @Text1 = 'dir '+ ltrim(rtrim(@Ruta)) + ltrim(rtrim(@NomArchTXT)) EXEC @result = master..xp_cmdshell @text1 IF (@result > 0 ) BEGIN select @Text2 = 'bcp '+ltrim(rtrim(@NomBD))+'..'+ltrim(rtrim(@TablaSQL) )+' out ' select @Text2 = @Text2 + ltrim(rtrim(@Ruta)) + ltrim(rtrim(@NomArchTXT)) select @Text2 = @Text2 + ' -c -U'+ltrim(rtrim(@Login))+' -P'++ltrim(rtrim(@Password)) EXEC master..xp_cmdshell @Text2 Print 'R e s p a l d a d o' EXEC @result = master..xp_cmdshell @Text1 END End Go Grant All on SP_Resp_Tabla_Disco to Public ----------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------- /* SP_Recupera_TxT_BD '\\Servidor_1\F$\Resp\','Nom_Tabla','ArchTexto.Txt ','sa','1','Ejemplo' */ If Exists(Select * From Sysobjects Where Name = 'SP_Recupera_TxT_BD') Drop Proc SP_Recupera_TxT_BD Go Create Proc SP_Recupera_TxT_BD @Ruta Varchar(100), @TablaSQL Varchar(100), @NomArchTXT Varchar(100), @Login Varchar(100), @Password Varchar(100), @NomBD Varchar(100) AS Begin Declare @Text1 Varchar(100), @Text2 Varchar(100), @result Int, @Bodega Varchar(10) select @Text1 = 'dir '+ ltrim(rtrim(@Ruta)) + ltrim(rtrim(@NomArchTXT)) EXEC @result = master..xp_cmdshell @text1 IF (@result <= 0 ) BEGIN select @Text2 = 'bcp '+ltrim(rtrim(@NomBD))+'..'+ltrim(rtrim(@TablaSQL) )+' in ' select @Text2 = @Text2 + ltrim(rtrim(@Ruta)) + ltrim(rtrim(@NomArchTXT)) select @Text2 = @Text2 + ' -c -U'+ltrim(rtrim(@Login))+' -P'++ltrim(rtrim(@Password)) Print 'R e s p a l d a n d o' EXEC @result = master..xp_cmdshell @Text2 END End Go Grant All on SP_Recupera_TxT_BD to Public |
| |||
Cita:
Iniciado por Gabriel Sanchez mmmmmm, esta raro ? si quieres iniciemos con el SP que baja la Información Como lo estas ejecutando? bueno el sp que me enviaste lo ejecuto asi exec SP_resp o estara mal |