欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

SQL SERVER 数据库备份代码实例

程序员文章站 2023-11-17 14:14:52
本文实例为大家分享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 server数据库备份详解整合,希望对大家有所帮助

相关标签: SQL 数据库备份