在一个项目中用到的数据库是sqlserver 2008 r2 express 。可没想到express版本的功能有些限制,此前一直都不知道啊。百度百科可以看到它的限制:
GO
DECLARE
@backupTime VARCHAR(20)
DECLARE
@fileName VARCHAR(1000)
SELECT
@backupTime=(CONVERT(VARCHAR(8), GETDATE(), 112) +REPLACE(CONVERT(VARCHAR(5), GETDATE(), 114), ‘:‘, ‘‘))
SELECT
@fileName=‘F:\Database_Backup\DB_‘+@backupTime+‘.bak‘
backup database DBName to disk=@fileName
- sqlcmd -S . -i F:\Database_Backup\backup.sql
最后确定即可。
至于删除过期的备份文件,我们也可以通过任务计划来完成。forfiles命令,可以实现批量删除文件,用法可以自行百度。我们写一个批处理文件delete_bakFile.bat,内容如下:
- forfiles /p F:\Database_Backup /m *.bak /d -7 /c "cmd /c del /f @path"
在这里,我们删除7天以前的备份,同样地新建一个任务计划,将它执行的程序指向这个bat 即可,执行时间可以指定为一个月一次或一周一次等。