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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55