sql server 备份脚本,自动删除7天前数据
时间: 2023-12-03 12:42:57 浏览: 269
以下是一个简单的 SQL Server 备份脚本,可以用于备份数据库并自动删除7天前的备份文件:
```sql
DECLARE @backupPath NVARCHAR(1000)
SET @backupPath = 'C:\Backup\' -- 指定备份文件存储路径
DECLARE @dbName NVARCHAR(100)
SET @dbName = 'YourDatabaseName' -- 替换为你的数据库名称
DECLARE @backupType NVARCHAR(10)
SET @backupType = 'FULL' -- 这里是全备份,你也可以改为DIFFERENTIAL或LOG
DECLARE @dateTime NVARCHAR(20)
SET @dateTime = REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(20), GETDATE(), 120), '-', ''), ':', ''), ' ', '') -- 获取当前日期时间,用于备份文件名
DECLARE @backupFileName NVARCHAR(1000)
SET @backupFileName = @backupPath + @dbName + '_' + @backupType + '_' + @dateTime + '.bak' -- 组成备份文件名
BACKUP DATABASE @dbName
TO DISK = @backupFileName
WITH COMPRESSION, INIT
-- 删除7天前的备份文件
DECLARE @deletePath NVARCHAR(1000)
SET @deletePath = @backupPath + @dbName + '_' + @backupType + '_'
DECLARE @deleteFile NVARCHAR(1000)
SET @deleteFile = @deletePath + CONVERT(VARCHAR(10), DATEADD(DAY, -7, GETDATE()), 120) + '*.bak'
EXECUTE xp_cmdshell 'del ' + @deleteFile
```
该脚本会将指定的数据库进行全备份,备份文件存储在指定路径下,并且会自动删除7天前的备份文件。你需要将`@backupPath`和`@dbName`变量替换为你自己的路径和数据库名称。同时也需要开启 xp_cmdshell 执行权限,否则会报错。
阅读全文