数据库:使用数据+模式备份少数表,而其他仅使用模式的表

Database: backup few tables with data+schema and other tables with only schema

在我们的数据库中,我们有与应用程序相关的数据 tables 和与交易相关的数据 tables。因为我的交易中有大量记录 table 我想在备份时忽略它们。所以基本上当我 运行 一个调度程序时,我想要模式 + 应用程序相关数据 tables 和事务相关数据 tables 的唯一模式。 我被建议使用生成脚本。但是我不确定它是否可行,因为我的应用程序 table 相互链接并且我的主键列通常是标识列。

backup few tables with data+schema and other tables with only schema

对于这种情况,常规的SQL服务器备份功能根本不起作用,因为无法拆分数据和结构,也无法避免某些表的备份。

即使您将执行文件组备份,也不意味着您可以只恢复该文件组而其他表保持原样。文件组备份不能以这种方式工作。

因此,脚本可以是解决方案之一:

    1. 为较小的表创建数据和结构脚本
    1. 仅创建事务表结构的脚本

另一种方法是将必要的数据和结构转储到单独的数据库中并进行进一步备份:

类似于:

SELECT * INTO ExportDB.dbo.Table1
SELECT * INTO ExportDB.dbo.Table2
SELECT * INTO ExportDB.dbo.Table3
--- two tables below will  have no data, only a structure
SELECT * INTO ExportDB.dbo.Table4 WHERE 1=0 -- A large transactional table 1
SELECT * INTO ExportDB.dbo.Table5 WHERE 1=0 -- A large Transactional table 1

BACKUP DATABASE ExportDB TO DISK='..'
DROP DATABASE ExportDB

但是,本机备份(不是您的方案的选项)可以确保数据一致性,由 PK 和 FK 强制执行,而我后面提到的自定义选项不能真正保证

参考资料: How can I take backup of particular tables in SQL Server 2008 using T-SQL Script