【问题标题】:How to copy entire SQL Server 2008 database, applying WHERE clause to restrict copied data如何复制整个 SQL Server 2008 数据库,应用 WHERE 子句来限制复制的数据
【发布时间】:2012-03-16 18:32:23
【问题描述】:

为了在开发和测试期间提供更真实的条件,我们希望自动化一个流程,将我们的 SQL Server 2008 数据库从生产环境复制到开发人员工作站。因为这些数据库的大小从几 GB 到 1-2 TB 不等,所以它需要很长时间并且不适合某些机器(我说的是 SSD)。我希望能够按下按钮或运行可以克隆数据库的脚本 - 结构和数据 - except 能够在数据复制期间指定 WHERE 子句以减小数据库的大小.

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

非常感谢任何帮助。

【问题讨论】:

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


    【解决方案1】:

    具有表条件的快照复制。这样您就可以在需要时复制您的架构和数据。

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

    【讨论】:

    • 谢谢。根据您的建议,我正在阅读此内容并设置测试复制。我正在调查的另一个内部建议是使用 RedGate Virtual Restore 快速装载前一天晚上的备份,然后使用 SQL 比较和 SQL 数据比较(我们已经拥有这两者)来保存将复制所有模式和过滤数据的项目到然后我们可以将新数据库复制到开发人员工作站。
    猜你喜欢
    • 1970-01-01
    • 2014-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-18
    • 2012-09-11
    相关资源
    最近更新 更多