我需要创build一个batch file来清除现有文件中的数据。 基本上SQL服务器pipe理工作室不会覆盖备份数据; 因此在备份运行和数据传输之后,我需要使用批处理作业清除文件。
在批处理作业中可以使用什么命令删除现有文件的内容?
您一定要使用维护计划function来进行备份。 您可以轻松地将其configuration为为每次运行创build新的备份文件(它会将完整的date和时间附加到文件名的末尾,例如mydb_backup_201106080006.bak )。
维护计划的可能任务之一是维护清理任务 ,用于删除不需要的* .bak&* .trn(或任何其他)文件。 准确性(定义文件是否可删除的时间间隔)是小时/天/周/月/年。
您可以插入Execute T-SQL Statement Task以在此维护清理任务之前运行。 在执行T-SQL语句任务时,执行外部命令复制/压缩备份(例如EXEC master.dbo.xp_cmdshell 'C:\path\to\compress.bat )。
我正在自己的服务器上使用SQL Server 2005(使用WinRAR进行压缩)。 SQL Server 2008支持压缩备份文件(WinRAR压缩比较好,但需要相当长的时间)。
如果要备份到文件设备,请在数据库备份任务屏幕的选项选项卡上有一个无线电select“覆盖所有现有的备份集”。 这会在每次运行时覆盖备份。
你如何备份数据? 您的备份工作是否有能力执行后工作脚本? 如果是这种情况,您可以通过一个简单的.cmd命令来删除目录中以备份扩展名结尾的所有文件。
否则,如果您的备份完成了一段时间,您可以使用Windows任务计划程序来运行删除batch file,但是我认为这里的关键是确保您的备份已成功完成,然后再删除文件。