代码之家  ›  专栏  ›  技术社区  ›  Chris Westbrook

在不擦除架构的情况下将数据从生产环境复制到测试服务器

  •  2
  • Chris Westbrook  · 技术社区  · 17 年前

    使用sqlserver2000,我想获取生产数据并将其放入测试数据库中,但我不想覆盖测试数据库的模式,因为其中有一些字段我还没有添加到生产中。这可以做到吗?我应该补充一点,这些数据库位于不同的服务器上。

    5 回复  |  直到 16 年前
        1
  •  0
  •   ryan_s    17 年前

    使用类似OmBelt的exportSQLServer到SQL工具。 (ombelt.com)

    它所做的插入指定了字段,所以你应该没问题。如果没有,请对其进行批量编辑。

    我发现它大大简化了SQLServer,使其像其他数据库一样具有SQL转储。

        2
  •  1
  •   Tim Williscroft    17 年前

    我认为 Import/Export Wizard 存在于SQL Server 2000中。向导通常很烦人,但只需要几分钟,而且您可能已经安装了它。

    该向导可用于创建 DTS package 它可以将生产数据库中的所有数据附加到已存在的另一个数据库中的表末尾。如果你有任何不为空且没有默认值的新列,我不确定这会得到多好的处理。

    您需要提供生产数据库作为源,开发数据库作为目标,然后确保检查新数据行的“append”选项。

    编辑: 我应该注意到,这确实适用于跨服务器,但我只尝试过从一个SQL Server实例到另一个实例。理论上,只要目标服务器支持ODBC,它就可以工作,但我不能保证这一点。

        3
  •  0
  •   Guy Starbuck    17 年前

    如果使用工具生成显式命名列的脚本(如SSIS),只要生产数据库中没有dev中不存在的列,它就应该可以工作。

        4
  •  0
  •   Fred    17 年前

    使用INSERT INTO SELECT语句将prod表批量传输到测试环境,避免prod中不匹配的测试字段。

        5
  •  0
  •   jeremcc chris    17 年前

    我使用Red Gate软件的SQL数据比较。它将对两个数据库中的数据进行差异处理,并生成相应的事务更新脚本。它将排除两个表中不存在的任何列,因此即使您在测试数据库中添加或删除了列,也应该没问题。