设为首页收藏本站

EPS数据狗论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1629|回复: 0

SQL SERVER 数据库备份代码实例

[复制链接]

16

主题

127

金钱

193

积分

入门用户

发表于 2019-4-11 17:02:24 | 显示全部楼层 |阅读模式

这篇文章主要介绍了SQL SERVER数据库备份,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值

本文实例为大家分享SQL SERVER数据库备份的具体代码,供大家参考
  1. /**
  2.   批量循环备份用户数据库,做为数据库迁移临时用
  3. */

  4. SET NOCOUNT ON

  5. DECLARE @d varchar(8)
  6. DECLARE @Backup_Flag NVARCHAR(10)
  7.   
  8. SET @d=convert(varchar(8),getdate(),112)

  9. /***自定义选择备份哪些数据库****/
  10. --SET @Backup_Flag='UserDB'      -- 所用的用户数据库
  11. SET @Backup_Flag='AlwaysOnDB'    -- AlwaysOn 用户数据库

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

  13. IF @Backup_Flag='UserDB'
  14. BEGIN

  15.   INSERT INTO #T (SQLBak)
  16.   SELECT
  17.       'BACKUP DATABASE [' + name + '] TO DISK=''E:\Backup\' + NAME + '_Full_'+@d+'.bak'' WITH CHECKSUM,NOFORMAT,INIT,SKIP,COMPRESSION' AS 'SQLBak'
  18.   FROM  sys.databases
  19.   WHERE  database_id>4

  20. END



  21. IF @Backup_Flag='AlwaysOnDB'
  22. BEGIN

  23.   INSERT INTO #T (SQLBak)
  24.   SELECT
  25.       'BACKUP DATABASE [' + database_name + '] TO DISK=''E:\Backup\' + database_name + '_Full_'+@d+'.bak'' WITH CHECKSUM,NOFORMAT,INIT,SKIP,COMPRESSION' AS 'SQLBak'
  26.   FROM  sys.availability_databases_cluster
  27. END



  28. DECLARE
  29.   @Minid INT ,
  30.   @Maxid INT ,
  31.   @sql VARCHAR(max)
  32. SELECT @Minid = MIN(id) ,
  33.     @Maxid = MAX(id)
  34. FROM  #T

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


  36. WHILE @Minid <= @Maxid
  37.   BEGIN
  38.     SELECT @sql = SQLBak
  39.     FROM  #T
  40.     WHERE  id = @Minid
  41. ----exec (@sql)
  42.     PRINT ( @sql )
  43.     SET @Minid = @Minid + 1
  44.   END

  45. DROP TABLE #T
复制代码

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

客服中心
关闭
在线时间:
周一~周五
8:30-17:30
QQ群:
653541906
联系电话:
010-85786021-8017
在线咨询
客服中心

意见反馈|网站地图|手机版|小黑屋|EPS数据狗论坛 ( 京ICP备09019565号-3 )   

Powered by BFIT! X3.4

© 2008-2028 BFIT Inc.

快速回复 返回顶部 返回列表