sql存储过程----备份数据库
生活随笔
收集整理的這篇文章主要介紹了
sql存储过程----备份数据库
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1CREATE?procedure?dbo.usp_backup_database
?2
?3@p_dbname?varchar(50),--備份數(shù)據(jù)庫名稱
?4@p_type?varchar(50),--備份類型,fullorlog
?5@filename?varchar(8000)=''?OUTPUT
?6
?7as
?8
?9SET?NOCOUNT?ON
10SET?DATEFIRST?1
11
12DECLARE?@sql?varchar(8000)
13DECLARE?@datetime?varchar(30)
14DECLARE?@path?varchar(100)
15
16SET?@path?=?'E:\backup\sql_data\'
17
18IF?@p_type='full'
19BEGIN
20?SET?@datetime?=?CONVERT(varchar(20),getdate(),20)
21?SET?@datetime?=?REPLACE(@datetime,'?','_')
22?SET?@datetime?=?'DB_Full_'+REPLACE(@datetime,':','-')
23
24?SET?@filename?=?@datetime+'.bak'''
25
26?SET?@sql?=?'BACKUP?DATABASE?'?+?@p_dbname
27?SET?@sql?=?@sql?+?'?TO?DISK?=?N'''+@path+@p_dbname?+?'\'+@filename
28?SET?@sql?=?@sql?+?'?WITH?INIT'
29END
30
31IF?@p_type='diff'
32BEGIN
33?SET?@datetime?=?'DB_Diff_'+CAST(DATEPART?(?dw?,?getDate())?AS?char(1))
34?SET?@filename?=?@datetime+'.diff'''
35?SET?@sql?=?'BACKUP?DATABASE?'?+?@p_dbname
36?SET?@sql?=?@sql?+?'?TO?DISK?=?N'''+@path+@p_dbname?+?'\'+@filename
37?SET?@sql?=?@sql?+?'?WITH?INIT,DIFFERENTIAL'
38END
39
40IF?@p_type='log'
41BEGIN
42?SET?@datetime?=?'DB_Log_'+DATENAME?(?hh?,?getdate()?)
43?SET?@filename?=?@datetime+'.log''?'
44?SET?@sql?=?'BACKUP?LOG?'+?@p_dbname
45?SET?@sql?=?@sql?+?'?TO?DISK?=?N'''+@path+@p_dbname?+?'\'+@filename
46?SET?@sql?=?@sql?+?'?WITH?INIT'
47END
48
49
50--SELECT?@sql
51
52EXEC?(@sql)
53
54SET?@filename?=?REPLACE(@filename,'''','')
55GO
?2
?3@p_dbname?varchar(50),--備份數(shù)據(jù)庫名稱
?4@p_type?varchar(50),--備份類型,fullorlog
?5@filename?varchar(8000)=''?OUTPUT
?6
?7as
?8
?9SET?NOCOUNT?ON
10SET?DATEFIRST?1
11
12DECLARE?@sql?varchar(8000)
13DECLARE?@datetime?varchar(30)
14DECLARE?@path?varchar(100)
15
16SET?@path?=?'E:\backup\sql_data\'
17
18IF?@p_type='full'
19BEGIN
20?SET?@datetime?=?CONVERT(varchar(20),getdate(),20)
21?SET?@datetime?=?REPLACE(@datetime,'?','_')
22?SET?@datetime?=?'DB_Full_'+REPLACE(@datetime,':','-')
23
24?SET?@filename?=?@datetime+'.bak'''
25
26?SET?@sql?=?'BACKUP?DATABASE?'?+?@p_dbname
27?SET?@sql?=?@sql?+?'?TO?DISK?=?N'''+@path+@p_dbname?+?'\'+@filename
28?SET?@sql?=?@sql?+?'?WITH?INIT'
29END
30
31IF?@p_type='diff'
32BEGIN
33?SET?@datetime?=?'DB_Diff_'+CAST(DATEPART?(?dw?,?getDate())?AS?char(1))
34?SET?@filename?=?@datetime+'.diff'''
35?SET?@sql?=?'BACKUP?DATABASE?'?+?@p_dbname
36?SET?@sql?=?@sql?+?'?TO?DISK?=?N'''+@path+@p_dbname?+?'\'+@filename
37?SET?@sql?=?@sql?+?'?WITH?INIT,DIFFERENTIAL'
38END
39
40IF?@p_type='log'
41BEGIN
42?SET?@datetime?=?'DB_Log_'+DATENAME?(?hh?,?getdate()?)
43?SET?@filename?=?@datetime+'.log''?'
44?SET?@sql?=?'BACKUP?LOG?'+?@p_dbname
45?SET?@sql?=?@sql?+?'?TO?DISK?=?N'''+@path+@p_dbname?+?'\'+@filename
46?SET?@sql?=?@sql?+?'?WITH?INIT'
47END
48
49
50--SELECT?@sql
51
52EXEC?(@sql)
53
54SET?@filename?=?REPLACE(@filename,'''','')
55GO
轉(zhuǎn)載于:https://www.cnblogs.com/chenbg2001/archive/2010/01/31/1660426.html
總結(jié)
以上是生活随笔為你收集整理的sql存储过程----备份数据库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: postgreSQL分页
- 下一篇: 一图看懂边缘计算整体架构