欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-10-31 15:25:34
复制代码 代码如下:--full backup --use master create proc [dbo].[bakup_database] as declare @st...
复制代码 代码如下:

--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--删除本地的备份临时文件