sql 异地备份所有数据库


declare @disk varchar(200)
select @disk='\\192.168.0.1\database'
declare backdatabase cursor for
select name from sysdatabases where dbid>6 --所有用户表 dbid自己随时调整
declare @name varchar(50)
open backdatabase
fetch next from backdatabase
into @name
--建立连接
declare @con varchar(500)
select @con='net use '+@disk+' pass /user:192.168.0.1\userName'
exec master..xp_cmdshell @con
while @@fetch_status=0
begin
 
--建立目录
 declare @str varchar(500)
    
select @str='if not exist '+@disk+'\'+@name+' mkdir '+@disk+'\'+@name
 
exec master..xp_cmdshell @str
 
--备份文件
 declare @sql varchar(500)
 
select @sql=@disk+'\'+@name+'\'+@name+'_backup_'+replace(replace(replace(CONVERT(varchargetdate(), 120 ),'-','_'),' ','_'),':',''+'.bak'
 
backup database @name to disk=@sql  
 
fetch next from backdatabase into @name
end
close backdatabase
deallocate backdatabase 
posted on 2009-03-27 09:49  马德华  阅读(250)  评论(0编辑  收藏  举报