加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQL数据库备份怎样做 数据库备份代码说明

发布时间:2023-06-20 12:47:03 所属栏目:MsSql教程 来源:
导读: 备份对于保护文件,数据免受丢失或者损坏等意外情况起重要作用,因此数据做好备份很重要。那么SQL SERVER数据库备份要怎么实现呢?下面给大家分享一个实例,供大家参考学习。/**批量循环备份用户数据库,做为数据

    备份对于保护文件,数据免受丢失或者损坏等意外情况起重要作用,因此数据做好备份很重要。那么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.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

    以上就是SQL数据库备份的方法介绍,小编认为是比较实用的,因此分享给大家参考,需要的朋友可以看看,希望对大家有帮助,更多SQL SERVER数据库备份内容可以关注其他文章。

(编辑:银川站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章