sql server删除过期备份文件的脚本
一、通过脚本查看过期文件,时间可以自己设定
循环遍历查看小于指定时间点的文件 %i 是文件,也可以输出,切记 %~ti 的格式是 年/月/日 时:分
如果要对比的话要吧%~ti用双引号引起来,后面的时间字符串也引用起来!
二、删除过期文件
这里执行之后还是没有成功删除,继续修改脚本!!!!!!
三、问题解决
命令里面的管道符,必须要转义,否则会报错,报错内容如下
此时不应有 |。
管道符号(|)的误用: SQL Server 的 T-SQL 语言本身并不支持管道符号(|)。如果您尝试在 SQL 查询中直接使用它,可能会导致该错误。管道符号通常用于命令行界面或其他编程环境(例如 PowerShell)。
错误的命令: 如果您在 SQL Server 中执行的命令尝试以不正确的格式使用 SQL Server 的功能或选项,可能也会引发此错误。
真是一波三折啊,命令拼好如下:
直接在cmd执行一点问题没有,但是用xp_cmdshell 执行,就是不行,还会误删所有文件,一直百思不得其解,后来多种测试以后发现是%~ti压根没有获取到。
终于找到方法解决了,真是太不容易了,不过还是对命令不熟悉,这里尝试多次后发现以下命令可以完美解决!!
四、终极版本
以下是修改后的完整的清理备份文件的脚本(终极版本):