请记住,不应使用 T-SQL 进行文件维护。相反,您应该使用 Powershell 删除 /move / copy 等文件。
tsql方式:
使用xp_cmdshell与一起命令FORFILES命令
例如,删除 C:\Backup 目录及其子文件夹中文件修改日期超过 30 天的所有 .sql 文件。
EXEC xp_cmdshell 'FORFILES /p c:\BACKUP /s /m *.sql /d -30 /c "CMD /C del /Q /F @FILE"'
Run Code Online (Sandbox Code Playgroud)
免责声明:启用 xp_cmdshell 存在安全风险,并且没有多少公司允许这样做。
Powershell方式-->这应该是正确的方法!!
可以在technet上找到完整的脚本。
## Delete files older than 90 days
$a = Get-ChildItem C:\Scripts
foreach($x in $a)
{
$y = ((Get-Date) - $x.CreationTime).Days
if ($y -gt 90 -and $x.PsISContainer -ne $True)
{$x.Delete()}
}
Run Code Online (Sandbox Code Playgroud)
如果您想以务实的方式删除文件,您可以使用master.dbo.xp_delete_file扩展存储过程,但通常不建议使用它,因为这些类型的过程计划在 SQL Server 的未来版本中删除,尽管我不确定何时会删除.
如果这在部署后可能会存在很长时间,我建议您使用 a,maintenance plan因为此功能是内置的。
| 归档时间: |
|
| 查看次数: |
41358 次 |
| 最近记录: |