SQL Server 数据备份存储过程

今天开园,分享一下我一直在使用的数据备份存储过程,欢迎转载!!!

01USE [master]
02GO
03SET ANSI_NULLS ON
04GO
05SET QUOTED_IDENTIFIER OFF
06GO
07  
08CREATE Proc [dbo].[SQL_Backup]
09    @DataBase Nvarchar(50)
10AS
11DUMP TRANSACTION @DataBase WITH  NO_LOG
12BACKUP LOG @DataBase WITH NO_LOG
13DBCC SHRINKDATABASE (@DataBase)
14  
15---------------------------- 原创SQL备份数据库 ----------------------------
16--DECLARE @DataBase Nvarchar(100)
17DECLARE @DataPath Nvarchar(100)
18DECLARE @FileName Nvarchar(100)   
19DECLARE @BackupFileName Nvarchar(100)
20DECLARE @DataDescription Nvarchar(200)
21DECLARE @DataMediaName Nvarchar(50)
22DECLARE @DataMediaDescription Nvarchar(200)
23DECLARE @OkInfo Nvarchar(300)
24DECLARE @str Nvarchar(300)
25DECLARE @Rnd Nvarchar(11)
26DECLARE @dir Nvarchar(15)
27DECLARE @dirin bit
28DECLARE @Temp Nvarchar(500)
29-- Author: im531...
30-- Description: SQL_Backup
32-- Date: 2005-02-06
33  
34--SET @DataBase = 'test'
35SET @Temp = ''
36SET @DataPath = 'C:\www\SQL_Backup\'
37SET @Rnd = (SELECT Left(Newid(),4) + Right(Newid(),4)) + (SELECT Right(Datepart(ms,Getdate()),3))
38SET @str = RTRIM(CONVERT(CHAR(10),GETDATE(),112)) + '_' + RTRIM(DATEPART(HOUR,GETDATE())) + '_' + LTRIM(DATEPART(MINUTE,GETDATE()))
39SET @dir = RTRIM(CONVERT(CHAR(10),GETDATE(),112)) + '_' + RTRIM(DATEPART(HOUR,GETDATE()))
40SET @FileName = @DataPath + @dir + '\'+ @DataBase + '_Backup_'
41SET @BackupFileName = @FileName + @str  + '_' + @Rnd
42  
43CREATE TABLE [#tb](a bit,b bit,c bit)
44SET @Temp = @DataPath + @dir
45INSERT INTO [#tb] EXECUTE master..xp_FileExist @Temp
46IF Exists(SELECT 1 FROM [#tb] WHERE b = 1)
47    SET @dirin = 1
48ELSE
49    SET @dirin = 0
50DROP TABLE [#tb]
51  
52SET @Temp = 'md ' + @DataPath + @dir
53IF @dirin = 0
54    BEGIN
55        EXEC master..xp_cmdshell @Temp
56    END
57  
58SET @DataDescription = 'SQL语句产生的备份,备份时间:' + CONVERT(CHAR(19),GETDATE(),121)
59SET @DataMediaName = 'im531 Backup ...'
60SET @DataMediaDescription = 'Author im531 ... '
61SET @OkInfo = '数据库 ' + @DataBase + ' 成功备份至 ' + @BackupFileName
62  
63BACKUP DATABASE @DataBase TO DISK = @BackupFileName
64WITH NOINIT , NOUNLOAD , NOSKIP , STATS = 10 , NOFORMAT ,
65NAME = @DataBase , DESCRIPTION = @DataDescription , 
66MEDIANAME = @DataMediaName , MEDIADESCRIPTION = @DataMediaDescription
67  
68  
69-- 7z 压缩
70IF @DataBase = 'DataName'
71    BEGIN
72        SET @Temp = 'C:\7-zip\7z.exe a -t7z ' + @DataPath + @dir + '.7z ' + @DataPath + @dir + '\* -mx9 -r'
73        EXEC master..xp_cmdshell @Temp
74        SET @Temp = 'rd ' + @DataPath + @dir + ' /s/q'
75        EXEC master..xp_cmdshell @Temp
76    END
77  
78SELECT @OkInfo AS BackupInfo
79------------------- End ---------------------
80GO
81  
82EXEC SQL_Backup @DataBase = N'DataName'

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/16436858/viewspace-680671/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/16436858/viewspace-680671/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值