使用FORFILES命令来删除SQLServer备份的批处理
虽然有很多种方式可以解决这个问题,但是我们可以用T-SQL代码来处理这个文件删除过程。我用xp_cmdshell命令和FORFILES命令来处理类似于你所列出的过程。可以从Microsoft TechNet中获得FORFILES的可靠信息,但是在这篇文章中,我将涉及FORFILES大量的结构和使用方法来达到你的目的。 该FORFILES命令将选取文件的一个子集并且针对这个子集执行一个命令。这个命令需要下面的参数和接受下面的变量。 参数
变量
利用这些参数可以构造下面的例子来解决你删除备份脚本文件的难题。你可以基于更改时间/日期或者备份类型来创建脚本。你甚至可以构造能够同时参照两种标准的脚本。 我们将仔细看看这些可能的脚本。记住,你将从T-SQL代码内部执行这个过程,所以你需要在一个xp_cmdshell访问中以EXEC xp_cmdshell 'FORFILES COMMAND'的格式总结这些语句。请注意,在所有的例子中我都会使用/Q 和 /F标签来作为删除命令。这意味着这个命令将使用安静模式(/Q)甚至删除只能读的文件(/F)。 例子 当文件更改日期晚于10/18/2008时,删除所有C:Backup目录和它子目录下的.sql文件。 EXEC xp_cmdshell 'FORFILES /p c:BACKUP /s /m *.sql /d 10/18/2008 /c "CMD /C del /Q /F @FILE"' 当文件更改日期多于30天时,删除所有C:Backup目录和它的子目录下的.sql文件。 EXEC xp_cmdshell 'FORFILES /p c:BACKUP /s /m *.sql /d -30 /c "CMD /C del /Q /F @FILE"' 当文件更改日期多于30天且文件名以"F_"打头时,删除所有C:Backup目录和它的子目录下的.sql文件。 EXEC xp_cmdshell 'FORFILES /p c:BACKUP /s /m F_*.sql /d -30 /c "CMD /C del /Q /F @FILE"' (编辑:4S站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- SQL Server存储过程同时返回分页结果集和总数
- sql-server – 将SQLServer 2000数据库导出到XML的最简单方
- sql – 根据列拆分2行或更多行上的行
- Sql server中内部函数fn_PhysLocFormatter存在解析错误详解
- mybaits非配置原因,导致SqlSession was not registered fo
- SQL优化经验总结
- SQL Server 2008 新特性 总结复习(一)
- sql-server-2005 – SQL 2005维护清理任务.bak文件未被删除
- sql server代理中作业执行SSIS包失败的解决办法
- 必须会的SQL语句(四) 数据删除和更新