• Express版SQL定时备份BAK文件(SQL2005,SQL2008)


    方法是参考网上的,做了下修改。

    基本方式是:计划任务启动批处理文件,批处理执行SQL语句文件,在SQL语句中执行数据库中的存储过程来备份数据库。
    创建存储过程SQL:

    Use 数据库名
    GO
    
    CREATE PROCEDURE [dbo].[sp_BackupDB]
    
    @DBName sysname,
    @bakType CHAR(1),
    @bakToDir NVARCHAR(500)
    
    AS 
    BEGIN 
        SET NOCOUNT ON;
    
        DECLARE @sqlCommand NVARCHAR(1000)
        DECLARE @dateTime NVARCHAR(20)
        DECLARE @bakFullPath NVARCHAR(500)
    
        SELECT @dateTime=REPLACE(CONVERT(VARCHAR,GETDATE(),111),'/','')+REPLACE(CONVERT(VARCHAR,GETDATE(),108),':','')
    		
            IF @bakType='F' 
                BEGIN
                    SET @bakFullPath = @bakToDir + @DBName + '_Full_' + @dateTime +'.BAK'
                    SET @sqlCommand='BACKUP DATABASE ' + @DBName + ' TO DISK = ''' + @bakFullPath +''''
                END
       
            IF @bakType='D'
                BEGIN
                    SET @bakFullPath = @bakToDir + @DBName + '_Diff_' + @dateTime + '.BAK'
                    SET @sqlCommand='BACKUP DATABASE ' + @DBName + ' TO DISK = ''' + @bakFullPath + ''' WITH DIFFERENTIAL'
                END
    					
            IF @bakType='L'
                BEGIN
                    SET @bakFullPath = @bakToDir + @DBName + '_Log_' + @dateTime + '.TRN'
                    SET @sqlCommand='BACKUP LOG ' + @DBName + ' TO DISK = ''' + @bakFullPath + ''''
                END
            EXECUTE sp_executesql @sqlCommand
    END
    GO
    

     批处理内容:(-i后面是要执行的SQL文件)
    sqlcmd -S .\SQLEXPRESS -E -i BackupDB.sql

    BackupDB.sql内容

    Use 存储过程所在数据库名
    EXEC dbo.sp_BackupDB N'备份的数据库名',N'F',N'备份文件存储路径';
    

      F是完全备份,D是差异备份,L是备份日志。

  • 相关阅读:
    修改Echarts 图表的坐标轴的文本的排列位置
    dataTable组件使用
    jeecg使用uploadify上传组件
    session属性的清除和非法登录
    Freemaker模板指令
    Freemarker的循环通过assign指令引入计数变量
    测试计划模板
    python+requests接口自动化测试框架实例详解教程(米兔888)
    jmeter(二十二)内存溢出原因及解决方法
    Jmeter(四)_逻辑控制器详解
  • 原文地址:https://www.cnblogs.com/sugartomato/p/2350328.html
Copyright © 2020-2023  润新知