码迷,mamicode.com
首页 > 数据库 > 详细

sqlserver2008R2数据库自动备份脚本

时间:2016-07-30 18:12:55      阅读:234      评论:0      收藏:0      [点我收藏+]

标签:

 1 CREATE proc [dbo].[usp_autoBackupDB]
 2 @dbname sysname=null --要备份的数据库名,不指定即为全部备份
 3 ,@path nvarchar(128)=d:\ --备份目录路径
 4 ,@backup_type varchar(16)=database --备份类型,可以为database,log
 5 ,@backup_sysdb int=0 --是否备份系统数据库,0为不备份,1为备份
 6 as
 7 set nocount on;
 8 
 9 declare @dbcnt int =0
10 ,@sql varchar(2000)=‘‘
11 ,@except_db varchar(1000)=case @backup_sysdb 
12 when 0 then ‘‘‘‘+master+‘‘‘‘+,+‘‘‘‘ +msdb+‘‘‘‘+,+‘‘‘‘+tempdb+‘‘‘‘+,+‘‘‘‘+model+‘‘‘‘
13 when 1 then ‘‘ end;
14 declare @db_list table(id int identity(1,1) not null,name sysname);
15 declare @backup_err_list table(id int identity(1,1) not null,name sysname);
16  if right(@path,1)<>\
17 set @path=@path+\
18 
19 if @dbname is null or @dbname in (all,*)
20 begin
21 --将所有数据库名存到一张临时表上
22 set @sql=select name from sys.databases where name not in (+@except_db+);
23 insert into @db_list(name) exec(@sql);
24 
25 --得到一共有多少个数据库
26 select @dbcnt=count(1) from @db_list;
27 --开始循环
28 while @dbcnt>0
29 begin
30 --从临时表中获得最后一个数据库的名字
31 select @dbname=name from @db_list where id=@dbcnt;
32 set @sql=backup +@backup_type+ +@dbname+ to disk=+‘‘‘‘+@path+@backup_type+_+@dbname+.+convert(varchar(8),getdate(),112)+.+DATENAME(HH,GETDATE())+‘‘‘‘
33 --开始循环备份
34 exec (@sql);
35 if @@ERROR<>0
36 insert into @backup_err_list(name) values(@dbname);
37 set @dbcnt=@dbcnt-1
38 end
39 end
40 else
41 begin
42 set @sql=backup +@backup_type+ +@dbname+ to disk=+‘‘‘‘+@path+@backup_type+_+@dbname+.+convert(varchar(8),getdate(),112)+.+DATENAME(HH,GETDATE())+‘‘‘‘
43 --仅备份一次
44 exec (@sql);
45 if @@ERROR<>0
46 insert into @backup_err_list(name) values(@dbname);
47 
48 end
49 if exists(select * from @backup_err_list)
50 select ID ,name as backup_err_dbname from @backup_err_list;
51 else print backup success;
52 
53 set nocount off;
54 
55 GO

 

sqlserver2008R2数据库自动备份脚本

标签:

原文地址:http://www.cnblogs.com/fm168/p/5721308.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!