巧用FORFILES命令删除sql server备份脚本

数据库 SQL Server
使用SQL中的FORFILES命令,可以轻松删除sql server备份脚本,下面就将为您详细介绍这种方法,希望对您学习FORFILES命令能够有所帮助。

如果不需要sql server备份文件,可否删除呢?答案是肯定的,下面就将教您一个删除sql server备份文件的方法,供您参考。

虽然有很多种方式可以解决这个问题,但 是我们可以用T-SQL代码来处理sql server备份文件删除过程。我用xp_cmdshell命令和FORFILES命令来处理类似于你所列出的过程。可以从 Microsoft TechNet中获得FORFILES的可靠信息,但是在这篇文章中,将涉及FORFILES大量的结构和使用方法来达到目的。
该FORFILES命令将选取文件的一个子集并且针对这个子集执行一个命令。这个命令需要下面的参数和接受下面的变量。

参数

参数名 描述
/p 路径
/m 检索屏蔽 (默认情况下是 *.*)
/s 如果包含这个参数,那么子目录将会被递归地检索。
/c 针对结果集中的每一个文件执行命令,命令必须包含在双引号中,默认情况是"cmd c/ echo @file"
/d 针 对文件选择的日期范围,把最新的更改日期当作文件标准。当/d参数是MM/DD/YYYY格式时,满足指定的+/-日期标准的文件也包含在内。当文件格式 是smallint (-32,768 - 32,768)文件+/-文件并且带着一个更改日期+/-时,从当前日期到该日期的时间数目将会包含在这个文件结果集中。

变量

变量名 描述
@FILE 文件名
@FNAME 无扩展的文件名
@EXT 文件扩展名
@PATH 文件绝对路经
@RELPATH 文件的相对路径
@ISDIR 如果文件类型是一个目录,那么判断是否是TRUE
@FSIZE 文件大小(用字节衡量)
@FDATE 文件上的最新更改日期邮戳
@FTIME 文件上的最新更改时间邮戳

利用这些参数可以构造下面的例子来解决你删除sql server备份脚本文件的难题。你可以基于更改时间/日期或者sql server备份类型来创建脚本。你甚至可以构造能够同时参照两种标准的脚本。#p#

我们将仔细看看这些可能的脚本。记住,你将从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"'

 

 

 

【编辑推荐】

教您简单学会sql server备份

sql server备份方法一览

SQL Server系统表的作用

如何建立sql server存储过程

sql server存储过程使用实例

责任编辑:段燃 来源: 互联网
相关推荐

2010-09-02 11:47:43

SQL删除

2010-09-16 17:56:31

SQL server临

2010-11-12 15:28:59

sql server默

2010-09-25 16:17:25

SQL语句

2010-09-03 11:35:50

2018-12-25 14:40:04

SQL ServerSQL语句数据库

2011-08-02 15:39:30

SQL Server iSql

2010-07-16 10:29:02

SQL Server

2022-09-05 17:09:55

SQL Server数据库

2010-07-06 09:08:07

SQL server差

2015-08-21 10:40:10

SQL Server备份还原

2011-07-11 09:54:16

DAC登录触发器

2018-10-15 14:28:21

SQLServer容灾备份

2010-07-06 08:56:16

SQL server

2010-11-10 13:54:27

SQL SERVER自

2009-05-07 15:52:26

SQL ServerSET选项客户端管理

2010-09-01 17:19:49

SQL删除TABLE

2010-09-02 11:38:44

SQL删除

2010-09-03 10:40:30

SQL删除

2010-11-10 11:47:35

SQL Server级
点赞
收藏

51CTO技术栈公众号