sql server 2012 同时备份几个database 脚本
时间: 2023-08-25 19:03:07 浏览: 36
在SQL Server 2012中,可以使用Transact-SQL脚本来同时备份多个数据库。以下是一个示例脚本:
```
DECLARE @DBName VARCHAR(100)
DECLARE @BackupPath VARCHAR(100)
DECLARE @BackupCommand VARCHAR(1000)
-- 设置备份路径
SET @BackupPath = 'C:\BackupFolder\'
-- 创建游标,获取所有数据库名称
DECLARE db_cursor CURSOR FOR
SELECT name
FROM sys.databases
WHERE state_desc = 'ONLINE' -- 只选择在线的数据库
OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @DBName
WHILE @@FETCH_STATUS = 0
BEGIN
-- 构建备份命令
SET @BackupCommand = 'BACKUP DATABASE ' + @DBName + ' TO DISK = ''' + @BackupPath + @DBName + '.bak'' WITH FORMAT'
-- 执行备份命令
EXEC (@BackupCommand)
FETCH NEXT FROM db_cursor INTO @DBName
END
CLOSE db_cursor
DEALLOCATE db_cursor
```
上述脚本首先设置备份路径,然后使用游标获取所有在线的数据库名称。在循环中,构建备份命令并使用EXEC函数执行该命令。备份文件将以数据库名称命名,并保存在指定的备份路径下。
注意,这个脚本会依次备份每个数据库,并且会覆盖已存在的备份文件。如果需要保留多个备份,可以在备份文件名中添加时间戳或其他唯一标识。