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=SOFMTI_TD\administrator --需填写域名\用户名(目标机器的Windows 登陆名) Set @strPsw=sofmit--需填写Windows 登陆密码(如:Soondy) Set @strCmdShell= net use \\192.168.0.22\c$ + @strPsw + /user: +@strUsr --需填写IP(目标机器的IP 地址,如:192.168.2.178) Set @strDataBaseName=LilianDB--填写数据库名称(如:Soondy) Set @FullFileName=E:\SqlServer自动备份文件\+LilianDB_backup_+@FileFlag+.BAK --需填写本地备份临时文件的目录,因为需要先备份到本地再 copy 到目标机器(如:保存目录为 E:\SoondyTest\) Set @ToFileName=\\192.168.0.22\D$\OneCardBak\ --需填写IP(目标机器的IP 地址)以及保存的目录(如:\\192.168.2.178\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--删除本地的备份临时文件 |