sql-server - 如何使用WHERE子句限制整个复制的SQL Server 2008数据库

标签 sql-server sql-server-2008 tsql data-migration bcp

为了在开发和测试过程中提供更实际的条件,我们希望自动化一个过程以将我们的SQL Server 2008数据库从生产复制到开发人员工作站。由于这些数据库的大小从几GB到1-2 TB不等,因此它将永久占用并且无法容纳在某些计算机上(我正在与您交谈,SSD)。我希望能够按下一个按钮或运行一个可以克隆数据库的脚本-结构和数据-除了能够在数据复制期间指定WHERE子句以减小数据库的大小之外。

我发现了几个部分解决方案,但是没有什么能够复制模式对象和自定义受限数据而无需大量的人工来确保对象/数据以正确的顺序被复制以满足依赖关系,FK约束等。我完全希望手动为每个表编写WHERE子句,但希望其余表可以自动化,以便我们可以轻松,快速和频繁地使用它。如果它在添加新的数据库对象时自动选择它们,则加分。

任何帮助是极大的赞赏。

最佳答案

带表条件的快照复制。这样,您将在需要时复制架构和数据。

article描述如何创建合并复制,但是当您选择快照复制时,步骤是相同的​​。最有趣的部分是步骤8:过滤表行。当然,因为有了它,您可以过滤掉所有不必要的数据以进行复制。但是,需要对每个实体执行此步骤,如果您拥有数百个实体,则最好分析如何以编程方式执行此操作,而不要通过向导窗口。

关于sql-server - 如何使用WHERE子句限制整个复制的SQL Server 2008数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9742697/

相关文章:

sql - 我可以牺牲一致性来允许并发 'insert or update' 和使用 SQL Server 对单个表进行读取访问吗?

sql-server - 防止复制数据库文件

sql查询返回两个表之间的差异

sql - SQL Server Management Studio 中的查询成本

sql - 使用sql server将单行多列合并为一列

tsql - TSQL合并错误处理

sql-server - 分页和 INNER JOIN

sql - 在Where 子句中选择可能存在的许多离散值

C# 使用外键填充嵌套类

c# - SQL 事务提交使连接处于损坏状态 (c#)