2012年3月8日 星期四

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(varchar, getdate(), 120 ),'-','_'),' ','_'),':','') +'.bak'
 backup database @name to disk=@sql
 fetch next from backdatabase into @name
end
close backdatabase
deallocate backdatabase

沒有留言:

張貼留言