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和系統檢視的話往往要編寫很多東西,對於...