日期:2014-05-16  浏览次数:20474 次

SQL备份所有数据库脚本

技巧要点:使用游标循环读取所有数据库名,然后定义存放路径,最后备份所有数据库到指定存在的本地文件夹中

脚本如下:

declare @fileName varchar(255) --定义备份文件名变量
declare @dbname nvarchar(50)   --定义当前数据库名变量

declare mycursor cursor fast_forward for select name from master..sysDatabases order by name --定义一个游标对象

open mycursor --打开游标
fetch next from mycursor into @dbname--取数据到临时变量
while @@fetch_status = 0 --系统@@fetch_status = 0 时循环结束
begin

set @fileName = 'D:\数据备份\20140328\'+@dbname+convert(varchar(10),getdate(),112)+'.bak' --定义当前备份文件存放路径

backup database @dbname to disk=@fileName--循环备份当前数据库

fetch next from mycursor into @dbname --再次取值
end

close mycursor --关闭游标
deallocate mycursor --删除游标

 

使用方法:打开SQL查询分析器,按F5直接运行上面的脚本即可

消息提示:tempdb数据库可能无法备份,会报正在使用中错误,其它数据库备份顺利。