Eliminar Archivos vía SQL

25/06/2004 - 20:28 por Pao | Informe spam
Hola a todos a nivel de SQL quiero eliminar archivos de
una ruta llamada
c:\cobis\kernel\log\ estos archivos manejan el formato
errormes.dia ambos de dos digitos. Ejemplo error06.25

Como hago para eliminar todos los menores a esa fecha
(gedate-1)???
Intente hacer algo pero no funciona solo consegui formar
el nombre del archivo.

declare
@w_fechai varchar(20),
@fecha_resultado datetime
set @fecha_resultado=dateadd(dd,case when datename(dw,
getdate()) in
('Sunday') then -2 else -1 end,getdate())

if DATEPART(mm, @fecha_resultado) < 10
set @w_fechai ='0'+convert(varchar(2),DATEPART
(mm, @fecha_resultado))
else
set @w_fechai =convert(varchar(2),DATEPART(mm,
@fecha_resultado))

if DATEPART(dd, @fecha_resultado) < 10 set
@w_fechai = @w_fechai +'0'+convert(varchar(2),DATEPART
(dd, @fecha_resultado))
else
set @w_fechai = 'error' +@w_fechai + '.'+convert
(varchar(2),DATEPART(dd, @fecha_resultado))
select @w_fechai

Preguntas similare

Leer las respuestas

#1 ulises
25/06/2004 - 22:00 | Informe spam
Primera pregunta: ¿tiene que ser necesariamente la
eliminación con SQL Server?, si la respuesta es afirmativa
y ya tienes formado el nombre del archivo puedes usar los
procedimientos sp_OA para eliminarlo, algo como (sin
probar) :

Declare @object int
Declare @status int
EXEC @status = sp_OACreate 'Scripting.FileSystemObject',
@object OUT
Exec @status = sp_OAMethod
@object, 'DeleteFile',c:\cobis\kernel\log\'+nombre,1
...

revisa los procedimientos sp_OA en el BOL y el detalle de
los métodos de FileSystemObject.

Saludos,
Ulises

Hola a todos a nivel de SQL quiero eliminar archivos de
una ruta llamada
c:\cobis\kernel\log\ estos archivos manejan el formato
errormes.dia ambos de dos digitos. Ejemplo error06.25

Como hago para eliminar todos los menores a esa fecha
(gedate-1)???
Intente hacer algo pero no funciona solo consegui formar
el nombre del archivo.

declare
@w_fechai varchar(20),
@fecha_resultado datetime
set @fecha_resultado=dateadd(dd,case when datename(dw,
getdate()) in
('Sunday') then -2 else -1 end,getdate())

if DATEPART(mm, @fecha_resultado) < 10
set @w_fechai ='0'+convert(varchar(2),DATEPART
(mm, @fecha_resultado))
else
set @w_fechai =convert(varchar(2),DATEPART(mm,
@fecha_resultado))

if DATEPART(dd, @fecha_resultado) < 10


set
@w_fechai = @w_fechai +'0'+convert(varchar(2),DATEPART
(dd, @fecha_resultado))
else
set @w_fechai = 'error' +@w_fechai + '.'+convert
(varchar(2),DATEPART(dd, @fecha_resultado))
select @w_fechai


.

Respuesta Responder a este mensaje
#2 Gustavo Larriera [MVP SQL]
25/06/2004 - 22:03 | Informe spam
Puedes utilizar el xp_cmdshell, ejemplo:

xp_cmdshell 'dir *.exe', NO_OUTPUT

Gustavo Larriera, MVP-SQL, MCSE
Uruguay LatAm
Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun
derecho / This posting is provided "AS IS" with no warranties, and confers
no rights.
"Pao" wrote in message
news:2185101c45ae2$28dc6e20$
Hola a todos a nivel de SQL quiero eliminar archivos de
una ruta llamada
c:\cobis\kernel\log\ estos archivos manejan el formato
errormes.dia ambos de dos digitos. Ejemplo error06.25

Como hago para eliminar todos los menores a esa fecha
(gedate-1)???
Intente hacer algo pero no funciona solo consegui formar
el nombre del archivo.

declare
@w_fechai varchar(20),
@fecha_resultado datetime
set @fecha_resultado=dateadd(dd,case when datename(dw,
getdate()) in
('Sunday') then -2 else -1 end,getdate())

if DATEPART(mm, @fecha_resultado) < 10
set @w_fechai ='0'+convert(varchar(2),DATEPART
(mm, @fecha_resultado))
else
set @w_fechai =convert(varchar(2),DATEPART(mm,
@fecha_resultado))

if DATEPART(dd, @fecha_resultado) < 10 set
@w_fechai = @w_fechai +'0'+convert(varchar(2),DATEPART
(dd, @fecha_resultado))
else
set @w_fechai = 'error' +@w_fechai + '.'+convert
(varchar(2),DATEPART(dd, @fecha_resultado))
select @w_fechai


Respuesta Responder a este mensaje
#3 Pao
26/06/2004 - 01:31 | Informe spam
Lo intente realizar de esa manera pero no funciona no
permite concatenar algo como esto y no se como hacerlo en
base a todos los menores al nombre de ahi?

master..xp_cmdshell 'del c:\cobis\kernel\log\'+ @w_fechai
Puedes utilizar el xp_cmdshell, ejemplo:

xp_cmdshell 'dir *.exe', NO_OUTPUT

Gustavo Larriera, MVP-SQL, MCSE
Uruguay LatAm
Este mensaje se proporciona "COMO ESTA" sin garantias y


no otorga ningun
derecho / This posting is provided "AS IS" with no


warranties, and confers
no rights.
"Pao" wrote in message
news:2185101c45ae2$28dc6e20$
Hola a todos a nivel de SQL quiero eliminar archivos de
una ruta llamada
c:\cobis\kernel\log\ estos archivos manejan el formato
errormes.dia ambos de dos digitos. Ejemplo error06.25

Como hago para eliminar todos los menores a esa fecha
(gedate-1)???
Intente hacer algo pero no funciona solo consegui formar
el nombre del archivo.

declare
@w_fechai varchar(20),
@fecha_resultado datetime
set @fecha_resultado=dateadd(dd,case when datename(dw,
getdate()) in
('Sunday') then -2 else -1 end,getdate())

if DATEPART(mm, @fecha_resultado) < 10
set @w_fechai ='0'+convert(varchar(2),DATEPART
(mm, @fecha_resultado))
else
set @w_fechai =convert(varchar(2),DATEPART(mm,
@fecha_resultado))

if DATEPART(dd, @fecha_resultado) < 10 set
@w_fechai = @w_fechai +'0'+convert(varchar(2),DATEPART
(dd, @fecha_resultado))
else
set @w_fechai = 'error' +@w_fechai + '.'+convert
(varchar(2),DATEPART(dd, @fecha_resultado))
select @w_fechai






.

Respuesta Responder a este mensaje
#4 Gustavo Larriera [MVP SQL]
26/06/2004 - 23:40 | Informe spam
Prueba algo como esto:

declare
@folder varchar(200)
,@extension varchar(200)
,@cmd varchar(200)

set @folder = 'c:\tmp\'
set @extension = '*.exe'
set @cmd = 'dir ' + @folder + @extension


exec master..xp_cmdshell @cmd

Gustavo Larriera, MVP-SQL, MCSE
Uruguay LatAm
Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun
derecho / This posting is provided "AS IS" with no warranties, and confers
no rights.
"Pao" wrote in message
news:21dd701c45b0c$985837f0$
Lo intente realizar de esa manera pero no funciona no
permite concatenar algo como esto y no se como hacerlo en
base a todos los menores al nombre de ahi?

master..xp_cmdshell 'del c:\cobis\kernel\log\'+ @w_fechai
>Puedes utilizar el xp_cmdshell, ejemplo:
>
>xp_cmdshell 'dir *.exe', NO_OUTPUT
>
>Gustavo Larriera, MVP-SQL, MCSE
>Uruguay LatAm
>Este mensaje se proporciona "COMO ESTA" sin garantias y
no otorga ningun
>derecho / This posting is provided "AS IS" with no
warranties, and confers
>no rights.
>"Pao" wrote in message
>news:2185101c45ae2$28dc6e20$
>> Hola a todos a nivel de SQL quiero eliminar archivos de
>> una ruta llamada
>> c:\cobis\kernel\log\ estos archivos manejan el formato
>> errormes.dia ambos de dos digitos. Ejemplo error06.25
>>
>> Como hago para eliminar todos los menores a esa fecha
>> (gedate-1)???
>> Intente hacer algo pero no funciona solo consegui formar
>> el nombre del archivo.
>>
>> declare
>> @w_fechai varchar(20),
>> @fecha_resultado datetime
>> set @fecha_resultado=dateadd(dd,case when datename(dw,
>> getdate()) in
>> ('Sunday') then -2 else -1 end,getdate())
>>
>> if DATEPART(mm, @fecha_resultado) < 10
>> set @w_fechai ='0'+convert(varchar(2),DATEPART
>> (mm, @fecha_resultado))
>> else
>> set @w_fechai =convert(varchar(2),DATEPART(mm,
>> @fecha_resultado))
>>
>> if DATEPART(dd, @fecha_resultado) < 10 set
>> @w_fechai = @w_fechai +'0'+convert(varchar(2),DATEPART
>> (dd, @fecha_resultado))
>> else
>> set @w_fechai = 'error' +@w_fechai + '.'+convert
>> (varchar(2),DATEPART(dd, @fecha_resultado))
>> select @w_fechai
>>
>>
>
>
>.
>
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida