微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SqlServer2005 自动备份并存储另一电脑上的存储过程函数

--Full BackUp 
--Use Master 
CREATE proc [dbo].[bakup_DataBase] 
as 
Declare @strPsw varchar(50) 
Declare @strUsr varchar(50) 
Declare @strCmdshell varchar(300) 
Declare @strDataBaseName varchar(20) 
Declare @FullFileName Varchar(200) 
Declare @FileFlag varchar(50) 
Declare @ToFileName varchar(200) 
Declare @sqlStr varchar(500) 
Declare @sqlStr2 varchar(500) 
Declare @FlagDel varchar(20) 
Set 
@FileFlag=replace(replace(convert(char(20),getdate(),20),':',''),' ','-') --备份的文件命名规则:日期-时间.bak 
Set @strUsr='domain\***.***' --需填写域名\用户名(目标机器的Windows 登陆名) 
Set @strPsw='****'--需填写Windows 登陆密码 
Set @strCmdshell= 'net use \\***.***.*.**\c$ ' + @strPsw + ' /user:' +@strUsr --需填写IP(目标机器的IP 地址,如:192.168.2.178) 
Set @strDataBaseName='dbname'--填写数据库名称 
Set @FullFileName='E:\sqlServer自动备份文件\'+'dbname_backup_'+@FileFlag+'.BAK' 
--需填写本地备份临时文件的目录,因为需要先备份到本地再 copy 到目标机器(如:保存目录为 E:\Test\) 
Set @ToFileName='\\***.***.*.**\D$\OneCardBak\' --需填写IP(目标机器的IP 地址)以及保存的目录(如:\\***.***.*.**\c$\Test\) 
Set @FlagDel='False'--填写True 表示删除本地的备份临时文件,填写False 或其他字符表示保留该文件 
Set @sqlStr='copy '+@FullFileName+' '+@ToFileName 
Set @sqlStr2='del ' +@FullFileName 
BackUp DataBase @strDataBaseName To disk= @FullFileName with init 
exec master..xp_cmdshell @strCmdshell--尝试连接到目标机器 
exec Master..xp_cmdshell @sqlStr --拷贝到目标机器上 
if (@FlagDel ='True') exec master.. xp_cmdshell @sqlStr2--删除本地的备份临时文件 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐