資料庫備份儲存過程

2022-03-12 22:58:48 字數 2724 閱讀 8518

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_backupdb

]@dbname sysname=

'', --

要備份的資料庫名稱,不指定則備份當前資料庫

@bkpath

nvarchar(260)=

'', --

備份檔案的存放目錄,不指定則使用sql預設的備份目錄

@bkfname

nvarchar(260)=

'', --

備份檔案名,檔名中可以用\dbname\代表資料庫名,\date\代表日期,\time\代表時間

@bktype

nvarchar(10)='db

', --

備份型別:'db'備份資料庫,'df' 差異備份,'log' 日誌備份

bit=

1, --

追加/覆蓋備份檔案

@password

nvarchar(20)=

''--

為備份檔案設定的密碼(僅sql2000支援),設定後,恢復時必須提供此密碼

asdeclare

@sql

varchar(8000

)

ifisnull(@dbname,'')=

''set

@dbname

=db_name

()

ifisnull(@bkpath,'')=

''begin

select

@bkpath

=rtrim(reverse(filename)) from master..sysfiles where name=

'master

'select

@bkpath

=substring(@bkpath,charindex('

\',@bkpath)+

1,4000

) ,

@bkpath

=reverse(substring(@bkpath,charindex('

\',@bkpath),4000))+

'backup\

'end

ifisnull(@bkfname,'')=

''set

@bkfname='

\dbname\_\date\_\time\.bak

'set

@bkfname

=replace(replace(replace(@bkfname,'

\dbname\

',@dbname

) ,

'\date\

',convert(varchar,getdate(),112

)) ,

'\time\

',replace(convert(varchar,getdate(),108),'

:',''

))

set@sql='

backup '+

case

@bktype

when

'log

'then

'log

'else

'database

'end

+@dbname+'

to disk=

'''+

@bkpath

+@bkfname

+'''

with '+

case

@bktype

when'df

'then

'differential,

'else

''end

+case

when

1then

'noinit

'else

'init

'end

+case

isnull(@password,'') when

''then

''else

',password=

'''+

@password

+''''

endexec(@sql

)go

呼叫儲存過程方式:

--

備份當前資料庫

exec p_backupdb @bkpath='

c:\',@bkfname='

\dbname\_\date\_db.bak'--

差異備份當前資料庫

exec p_backupdb @bkpath='

c:\',@bkfname='

db_\date\_df.bak

',@bktype='

df'--備份當前資料庫日誌

exec p_backupdb @bkpath='

c:\',@bkfname='

db_\date\_log.bak

',@bktype='

log'

資料庫作業備份儲存過程

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 備份檔案名,檔名中可以用...

備份資料庫儲存過程

原文 備份資料庫儲存過程 由於使用ssms建立的維護計畫中,完整備份的話,會打斷別的備份的順序鏈,而由於管理原因,往往需要有幾套備份計畫,所以經過時間,本人編寫了乙個儲存過程實現我的想法。不管你用不用,反正我用了。首先,建立乙個表,用於記錄備份資訊。因為用dmv和系統檢視的話往往要編寫很多東西,對於...