1
CREATE procedure dbo.usp_backup_database
2
3
@p_dbname varchar(50),--备份数据库名称
4
@p_type varchar(50),--备份类型,fullorlog
5
@filename varchar(8000)='' OUTPUT
6
7
as
8
9
SET NOCOUNT ON
10
SET DATEFIRST 1
11
12
DECLARE @sql varchar(8000)
13
DECLARE @datetime varchar(30)
14
DECLARE @path varchar(100)
15
16
SET @path = 'E:\backup\sql_data\'
17
18
IF @p_type='full'
19
BEGIN
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'
29
END
30
31
IF @p_type='diff'
32
BEGIN
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'
38
END
39
40
IF @p_type='log'
41
BEGIN
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'
47
END
48
49
50
--SELECT @sql
51
52
EXEC (@sql)
53
54
SET @filename = REPLACE(@filename,'''','')
55
GO
转载于:https://www.cnblogs.com/chenbg2001/archive/2010/01/31/1660426.html