MSSql Server 剔除某些表进行备份

Posted helloaxi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MSSql Server 剔除某些表进行备份相关的知识,希望对你有一定的参考价值。

  脚本用途:

    客户因财务软件在内网,还有另一个财务系统在外网,这两个系统之间,定期需要数据同步,这个同步需要客户手动去执行。

    财务软件中有使用附件功能,附件比较大,一个账套可达10G以上,传输时间较长。

    外网的系统不需要附件,故剔除这些附件后再进行数据库备份

 

  脚本内容:

  --若库存在,则删除库重新创建

  if ‘G90012019‘ in (select name from master..sysdatabases)
    drop database G90012019

  create database G90012019

  --xtype=‘U‘表示所有用户表 ‘S‘表示所有系统表
  if ‘tablename‘ in (select name from sysobjects Where xtype=‘U‘)
    drop table tablename

  SELECT IDENTITY(int,1,1) as id,‘select * into G90012019..‘+name+‘ from ‘+name as yj
    into tablename FROM SysObjects Where XType=‘U‘ and name <>‘z_fjdata‘ ORDER BY Name

  declare @i int,@max int,@SQLYJ varchar(512)
  set @i =1
  set @max=(select MAX(id) from tablename)

  --循环执行select into语句
  while @i<=@max
    begin
      set @SQLYJ=(select yj from tablename where @i=id)
      exec(@SQLYJ)
      set @i=@i+1
    end

  --init是覆盖之前的备份集 notinit是追加之前的备份集
  BACKUP DATABASE PUBDATA TO DISK = N‘\192.168.2.120服务器共享文件夹测试数据PUBDATA_backup.bak‘
    WITH NOFORMAT,INIT,NAME = N‘G90012019-剔除附件库 备份‘, SKIP, NOREWIND, NOUNLOAD
  GO

  BACKUP DATABASE G90012019 TO DISK = N‘\192.168.2.120服务器共享文件夹测试数据G90012019_backup.bak‘
    WITH NOFORMAT,INIT,NAME = N‘G90012019-剔除附件库 备份‘, SKIP, NOREWIND, NOUNLOAD
  GO

以上是关于MSSql Server 剔除某些表进行备份的主要内容,如果未能解决你的问题,请参考以下文章

MSSQL Server 数据库备份还原常用SQL语句及注意

MSSQL Server 数据库备份还原常用SQL语句及注意

MSSQL Server2012备份所有数据库到网络共享盘上面,并自动删除几天前的备份。。

sql sever 2008数据库的还原备份问题

sqlserver自动备份失败原因都有哪些

mysql双主模式-只备份某些表,要求在建表ID自增