15/12/2005, 10:37
|
| | 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 |