SQL备份数据库存储过程:p_BackupDB

  SQL备份数据库存储过程:p_BackupDB



SQL Code:


/****** Object: StoredProcedure [dbo].[p_BackupDB] Script Date: 2021/2/7 16:11:50 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[p_BackupDB]
  
@DBNAME SYSNAME='', --要备份的数据库名称,不指定则备份当前数据库
  
@BKPATH NVARCHAR(260)='', --备份文件的存放目录,不指定则使用SQL默认的备份目录
  
@BKFNAME NVARCHAR(260)='',--备份文件名,文件名中可以用\DBNAME\代表数据库名,\DATE\代表日期,\TIME\代表时间
  
@BKTYPE NVARCHAR(10)='DB',--备份类型:'DB'备份数据库,'DF' 差异备份,'LOG' 日志备份
  
@APPENDFILE BIT=1 --追加/覆盖备份文件
AS
BEGIN
  
  
/****************************************************************************
  功能:备份数据库到指定目录,并写入备份日志
  
  SELECT * FROM sys_BackupHistory
  
  p_BackupDB 'DT_SysTables','G:\SQL数据库备份目录\'
  
  ****************************************************************************
*/
  
  
DECLARE @SQL VARCHAR(8000)
  
  
IF ISNULL(@DBNAME,'')='' SET @DBNAME=DB_NAME()--当前数据库
  
IF ISNULL(@BKPATH,'')='' SET @BKPATH=dbo.f_GetDBPath(NULL)
  
IF ISNULL(@BKFNAME,'')='' SET @BKFNAME='\DBNAME\_\DATE\_\TIME\.BAK'
  
  
SET @BKFNAME=REPLACE(REPLACE(REPLACE(@BKFNAME,'\DBNAME\',@DBNAME)
  ,
'\DATE\',CONVERT(VARCHAR,GETDATE(),112))
  ,
'\TIME\',REPLACE(CONVERT(VARCHAR,GETDATE(),108),':',''))
  
  
SET @SQL='BACKUP '+CASE @BKTYPE WHEN 'LOG' THEN 'LOG ' ELSE 'DATABASE ' END
  +
'['+@DBNAME+']'
  +
' TO DISK='''+@BKPATH+@BKFNAME
  +
''' WITH '+CASE @BKTYPE WHEN 'DF' THEN 'DIFFERENTIAL,' ELSE '' END
  +CASE
@APPENDFILE WHEN 1 THEN 'NOINIT' ELSE 'INIT' END
  
  
PRINT @SQL
  
EXEC(@SQL)
  
  
IF @@ERROR=0
  
BEGIN
  
PRINT '备份日志'
  
INSERT INTO dbo.sys_BackupHistory(DBName,BackupFileName,BackupPath,BackupTime) VALUES
  (
@DBNAME,@BKFNAME,@BKPATH+@BKFNAME,GETDATE())
    
END
    
    
    
    
    
END
    
GO
    
    
    
    
    
//来源:C/S框架网 | www.csframework.com | QQ:23404761




版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
C/S框架网
发表评论

评论内容
昵称:
关联文章

SQL备份数据库存储过程p_BackupDB
删除数据库备份文件存储过程p_DeleteBakFiles
SQL Server 存储过程详解
C#.NET SQL数据库备份与还原解决方案
SQL脚本获取SQLServer数据库目录存储过程:f_GetDBPath
数据库还原、备份这块最好加上定时备份功能
原创:SQLJOB作业自动备份数据库并自动清除备份历史记录
平台内所有的SQL都用存储过程
CSFrameworkV5.0旗舰版-数据库存储过程、函数列表
SQL存储过程获取拼音助记码
关于存储过程命名加"sp_"前缀的问题
SQL数据库备份历史记录表结构sys_BackupHistory
SQL存储过程:删除基础资料前逻辑判断,检查是否有关联业务数据
业务数据库模板表结构、存储过程及函数(CSFrameworkV5.New)
MSSQL 查询所有用户自定义存储过程和自定义函数
C/S开发框架企业版数据库改名后需要修改的存储过程、函数和视图
软件开发与设计 - IBM FileNet P8数据库表结构说明文档
CSFramework旗舰版多语言支持两种存储策略:XML文件及SQL数据库
新建业务账套需要修改的存储过程、函数和视图
SQLServer数据库转移高版本转低版本(把2008R2的数据库备份为2005)