使用 sql server 2000,我想获取我的生产数据并将其放入我的测试数据库中,但我不想覆盖测试数据库的架构,因为其中有我尚未添加到生产中的字段. 这可以做到吗?我应该补充一点,这些数据库位于不同的服务器上。
5 回答
使用类似 OmBelt 的 exportSQLServer to SQL 工具。(ombelt.com)
它制作的插入指定字段,所以你应该没问题。如果没有,请批量编辑它们。
我发现它极大地简化了 SQLServer 以像其他数据库一样拥有 SQL 转储。
如果您使用工具生成明确命名列的脚本(例如 SSIS),它应该可以工作,只要您的生产数据库中没有 dev 中不存在的列。
使用 INSERT INTO SELECT 语句从 prod 表批量发送到您的测试环境,避免您的测试字段在 prod 中不匹配。
我认为SQL Server 2000 中存在导入/导出向导。向导通常很烦人,但只需要几分钟,而且您可能已经安装了它。
该向导可用于创建DTS 包,该包可以将生产数据库中的所有数据附加到另一个数据库中已存在的表的末尾。如果您有任何不为空且没有默认值的新列,我不确定这将如何处理。
您需要提供您的生产数据库作为源数据库和开发数据库作为目标数据库,然后确保检查新数据行的“附加”选项。
编辑: 我应该注意,这确实适用于服务器,但我只尝试过从一个 SQL Server 实例到另一个实例。理论上,只要目标服务器支持 ODBC,它就可以工作,但我不能保证。
我使用 Red-Gate 软件的 SQL 数据比较。它将对两个数据库中的数据进行比较,并生成适当的事务更新脚本。它将排除两个表中都不存在的任何列,因此即使您在测试数据库中添加或删除了列也应该没问题。