sql server备份数据库

本文介绍了一个用于自动备份数据库的SQL存储过程,该过程能够按日期为指定数据库创建备份,并清理一周前的旧备份。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      数据是企业的重要信息,可能也是商业机密.所以我们一定要及时的作好备份,保重数据的安全.
下面是设计了一个存储过程来备份数据.如果要实现自动的备份你可以执行一个任务来自动的处理.
None.gifCREATE procedure AutoBackupDataBase
None.gif
--WITH ENCRYPTION  加密
None.gif
As
None.gif
Begin
None.gif
declare @Str varchar(8)
None.gif
declare @Str_d varchar(8)
None.gif
declare @Str_DB varchar(100)
None.gif
declare @Str_DB_d varchar(100)
None.gif
declare @Str_LOG varchar(50)
None.gif
Declare @StrPath varchar(50)
None.gif
declare @Name sysname
None.gif
set @Str=convert(char(10),getdate(),112)
None.gif
set @Str_d=convert(char(10),getdate()-7,112)
None.gif
set @StrPath =  'E:\BackupData\EveryDayBackup\'
None.gif
declare DBName cursor for select Name from master.dbo.sysdatabases where name='DG_DB' or name='HKbomdb' 
None.gif
open DBName
None.gif
FETCH NEXT FROM DBName into @Name
None.gif
WHILE @@FETCH_STATUS = 0
None.gif    
BEGIN
None.gif        
--删除7天以前的备份
None.gif
        set @Str_DB_d ='del  '+@StrPath+@Name+'_DB'+@Str_d 
None.gif        
print @Str_DB_d
None.gif        
exec master..xp_cmdshell @str_db_d        
None.gif        
set @Str_DB =@StrPath+@Name+'_DB'+@Str
None.gif        
--set @Str_LOG =@StrPath+@Name+'_LOG'+@Str
None.gif
        BACKUP DATABASE @Name TO  DISK = @Str_DB WITH  NOINIT ,  NOUNLOAD ,  NAME = N'所有数据库备份',  NOSKIP ,  STATS = 10,  NOFORMAT
None.gif        
--BACKUP LOG bdm TO  DISK = @Str_LOG WITH  NOINIT ,  NOUNLOAD ,  NAME = N'所有数据库日志备份',  NOSKIP ,  STATS = 10,  NOFORMAT,  NO_TRUNCATE 
None.gif
        FETCH NEXT FROM DBName INTO @Name
None.gif    
END
None.gif
CLOSE DBName
None.gif
DEALLOCATE DBName
None.gif
None.gif
end
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值