Ver Mensaje Individual
  #5 (permalink)  
Antiguo 15/12/2005, 10:37
hunabku
 
Fecha de Ingreso: diciembre-2003
Mensajes: 595
Antigüedad: 21 años, 1 mes
Puntos: 1
Cita:
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
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