博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL SERVER 数据库备份
阅读量:7081 次
发布时间:2019-06-28

本文共 1187 字,大约阅读时间需要 3 分钟。

SQL SERVER 数据库备份

复制代码
/**

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

*/

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.databasesWHERE   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 + 1END

DROP TABLE #T

复制代码
原文地址

转载地址:http://rpvml.baihongyu.com/

你可能感兴趣的文章
mysql数据库详解(续二)
查看>>
我的友情链接
查看>>
通过简单设置让CACTI支持中文显示
查看>>
WAF+SLB负载不均衡案例分享
查看>>
我的友情链接
查看>>
java final关键字
查看>>
磁盘分配
查看>>
我的友情链接
查看>>
斯坦佛编程教程-Unix编程工具(三)
查看>>
DHCP和TFTP配置以及CentOS 7上的服务控制
查看>>
Python 5.5 使用枚举类
查看>>
cookie禁用后session id传值的问题
查看>>
android 动画AnimationSet 和 AnimatorSet
查看>>
Ubuntu添加用户实用指南
查看>>
时空大数据来了,纽约公开11亿条出租车和Uber原始数据(英文版)
查看>>
Dharma勒索软件继续大肆传播,据称已有100多家希腊网站沦陷
查看>>
成为JavaGC专家(1)—深入浅出Java垃圾回收机制
查看>>
Linux学习笔记(十七) vim
查看>>
三十二、iptables filter表小案例、iptables nat表应用
查看>>
Linux第一周学习笔记(4)
查看>>