简化版 分站 股指 日历 影视
计算器 携程 地图 行情 电脑
加解密 长度 面积 空位 空位
首页 软件 编程 笑话 知识 公告 注册 登录 用QQ登录本站
     
    您现在的位置:首页 >> 数据库 >> 内容

    SQL SERVER 数据库备份代码实例

    内容摘要:/** 批量循环备份用户数据库,做为数据库迁移临时用*/SET NOCOUNT ONDECLARE @d varchar(8)DECLARE @Backup_Flag NVARCHAR(10)SET @d=convert(varchar(8),getdate(),112)/***自定义选择备份哪些数据库****/--SET @Backup_Flag='Use......

      /**

    批量循环备份用户数据库,做为数据库迁移临时用

    */

    SET NOCOUNT ON


    DECLARE @d varchar(8)

    DECLARE @Backup_Flag NVARCHAR(10)


    SET @d=convert(varchar(8),getdate(),112)


    /***自定义选择备份哪些数据库****/

    --SET @Backup_Flag='UserDB' -- 所用的用户数据库

    SET @Backup_Flag='AlwaysOnDB' -- AlwaysOn 用户数据库


    CREATE TABLE #T (ID INT NOT NULL IDENTITY(1,1),SQLBak NVARCHAR(MAX) NOT NULL)


    IF @Backup_Flag='UserDB'

    BEGIN


    INSERT INTO #T (SQLBak)

    SELECT

    'BACKUP DATABASE [' + name + '] TO DISK=''E:\Backup\' + NAME + '_Full_'+@d+'.bak'' WITH CHECKSUM,NOFORMAT,INIT,SKIP,COMPRESSION' AS 'SQLBak'

    FROM sys.databases

    WHERE database_id>4

    END




    IF @Backup_Flag='AlwaysOnDB'

    BEGIN


    INSERT INTO #T (SQLBak)

    SELECT

    'BACKUP DATABASE [' + database_name + '] TO DISK=''E:\Backup\' + database_name + '_Full_'+@d+'.bak'' WITH CHECKSUM,NOFORMAT,INIT,SKIP,COMPRESSION' AS 'SQLBak'

    FROM sys.availability_databases_cluster

    END




    DECLARE

    @Minid INT ,

    @Maxid INT ,

    @sql VARCHAR(max)

    SELECT @Minid = MIN(id) ,

    @Maxid = MAX(id)

    FROM #T


    PRINT N'--打印备份脚本..........'



    WHILE @Minid <= @Maxid

    BEGIN

    SELECT @sql = SQLBak

    FROM #T

    WHERE id = @Minid

    ----exec (@sql)

    PRINT ( @sql )

    SET @Minid = @Minid + 1

    END


    DROP TABLE #T

      版权声明:本内容来源于互联网,如有侵犯您的版权,请联系站长,本站收到您的信息后将及时处理。


    发布日期:2019/4/9 发布时间:15:11:18 点击:2323 
  • 上一篇:解决Access出现Microsoft JET Da
  • 下一篇:一些最重要的 SQL 命令
  • 本类新增
    本类热门文章
    Baidu
    壹 家 软 件 工 作 室(YiJia SoftWare Workroom) 齐天大圣® 制 作 ©2000-2019

    本空间由景安网络提供,奇安信网站卫士提供加速防护
    YiJiaCMS V3.15 Build 19.9.18(MSSQL) 闽ICP备05000814号-1