SQL2008 和2005多数据库备份方法

USE master
go

DECLARE @bak_path NVARCHAR(200)
DECLARE @bak_file_name NVARCHAR(200)

--设置文件备份路径
SET @bak_path = 'D:\tools\DataBase\'

--利用游标遍历,逐个备份数据库
DECLARE @db_name SYSNAME 
DECLARE cur_database CURSOR FOR
SELECT  [name]-- 查询所有数据库
    FROM    sys.databases
    WHERE   [state] = 0 -- 0 = ONLINE 在线状态
    AND [name] NOT IN ( 'master', 'model', 'msdb', 'tempdb', 'ReportServer','ReportServerTempDB')
    --系统数据库、演示数据库除外

OPEN cur_database
FETCH NEXT FROM cur_database INTO @db_name
WHILE ( @@FETCH_STATUS = 0 ) 
    BEGIN
        --设置备份文件名称,形如:dbname_2011-10-09.bak
        SET @bak_file_name = @bak_path + '' + @db_name + '_'
            + CONVERT(VARCHAR(10), GETDATE(), 120) + '.bak'  
        
        --开始完整备份        
        BACKUP DATABASE @db_name TO DISK = @bak_file_name  
        FETCH NEXT FROM cur_database INTO @db_name
    END
    
CLOSE cur_database
DEALLOCATE cur_database


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值