使用儲存過程執行資料庫備份

2022-02-16 18:43:44 字數 1491 閱讀 7437

create proc 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='152.168.2.202\administrator' --需填寫網域名稱\使用者名稱(目標機器的windows登陸名)

set @strpsw='jiang'--需填寫windows登陸密碼(如:soondy)

set @strcmdshell= 'net use ' + @strpsw + '/user:' +@strusr --需填寫ip(目標機器的ip位址,如:192.168.2.178)

set @strdatabasename='fs_me'--填寫資料庫名稱(如:soondy)

set @fullfilename='e:\'+@fileflag+'.bak'--需填寫本地備份臨時檔案的目錄,因為需要先備份到本地再copy到目標機器(如:儲存目錄為e:\soondytest\)

set @tofilename='\\152.168.2.202\share\' --需填寫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--刪除本地的備份臨時檔案

go然後建立乙個作業即可!

資料庫備份儲存過程

use wechat go object storedprocedure dbo p backupdb script date 2017 11 22 11 38 23 set ansi nulls on goset quoted identifier on gocreate proc dbo p b...

資料庫作業備份儲存過程

declare strpath nvarchar 200 set strpath convert nvarchar 19 getdate 120 set strpath replace strpath,set strpath g 備份 datebase strpath bak backup data...

備份的資料庫儲存過程

備份的資料庫儲存過程 alter proc p backupdb dbname sysname 要備份的資料庫名稱,不指定則備份當前資料庫 bkpath nvarchar 260 備份檔案的存放目錄,不指定則使用sql預設的備份目錄 bkfname nvarchar 260 備份檔案名,檔名中可以用...