技巧要点:使用游标循环读取所有数据库名,然后定义存放路径,最后备份所有数据库到指定存在的本地文件夹中
脚本如下:
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数据库可能无法备份,会报正在使用中错误,其它数据库备份顺利。