用SQL作業實現刪除過期檔案

2021-07-11 20:25:14 字數 1416 閱讀 5125

在sql server中, 一般是用維護計畫實現刪除過期檔案。不過直接用指令碼也是可以的,而且更靈活。

下面介紹三種方法, 新建乙個作業, 在作業的步驟裡加上相關的指令碼就可以了。

--1. xp_delete_file

--優點:相容性好

--缺點:不能刪除sql server之外建立的檔案,包括rar

--備註:維護計畫中的「清理維護」也是呼叫此 擴充套件儲存過程 來刪除檔案。

declare @olddate datetime

set @olddate = getdate()-7

execute master.dbo.xp_delete_file

0, --0: 備份檔案,1: 維護計畫文字報告

n'd:\database_bak\', --檔案路徑

n'bak', --副檔名

@olddate, --在此時間之前的檔案一律刪除

1 --刪除子資料夾中的檔案

--2. xp_cmdshell

--優點:非常靈活,可以刪除任何型別的檔案

--缺點:要求許可權較大,開啟後存在安全隱患

declare @directory nvarchar(50) --目錄

declare @days nvarchar(10) --保留多少天

declare @extensions nvarchar(max) --副檔名

declare @scripts nvarchar(4000)

set @directory=n'd:\database_bak'

set @days = n'7'

set @extensions = n'bak'

set @scripts=n'forfiles /p "'+@directory+'" /s /m *.'+@extensions+' /d -'+@days+' /c "cmd /c del @path"'

exec xp_cmdshell @scripts

--3. powershell

--優點:非常靈活,可以刪除任何型別的檔案

--缺點:不適用於 sqlserver2005

--備註:在作業的步驟中,型別必須選擇 "powershell"

$timeoutday = 7

$filepath = "d:\database_bak"

$allfile = get-childitem -path $filepath

foreach($file in $allfile)

}

SQL刪除過期檔案

在sql server中,一般是用維護計畫實現刪除過期檔案。不過直接用指令碼也是可以的,而且更靈活。下面介紹三種方法。優點 相容性好 缺點 不能刪除sql server之外建立的檔案,包括rar 備註 維護計畫中的 清理維護 也是呼叫此 擴充套件儲存過程 來刪除檔案。declare olddate ...

linux刪除過期檔案

建立刪除檔案指令碼 bin sh 定義所刪除目錄路徑 location find location mtime 365 type f name jmhrms trc exec rm f 或者 bin sh find u01 oracle admin jmhrms bdump mtime 365 ty...

linux刪除過期檔案

建立刪除檔案指令碼 bin sh 定義所刪除目錄路徑 location find location mtime 365 type f name jmhrms trc exec rm f 或者 bin sh find u01 oracle admin jmhrms bdump mtime 365 ty...