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语句及注意