1

我目前正在从旧数据库执行迁移操作。我需要执行数百万原始行的迁移,将原始内容分成多个目标父/子行。

由于这不是简单的一对一迁移,并且结果行是基于身份生成密钥的父/子行,执行迁移的最佳机制是什么?

我假设我不能使用批量插入,因为在生成脚本内容时无法确定子行的标识值?我目前能想到的唯一解决方案是明确设置身份,然后为导入有一个预定的起点。

如果其他人有任何意见,我将不胜感激。

4

2 回答 2

1

这是我的标准方法:

  • 创建新的数据模型
  • 将数据原封不动地拉入新数据库
  • 编写(并运行)一个 SQL 脚本来执行迁移
  • 测试
  • (可选)删除带有旧数据的表

使用纯 SQL 迁移数据还有很长的路要走。对于您描述的情况,您可能不需要处理单个 Cursor 即可完成它。

在查询分析器(或 dbms 中的模拟程序)中运行该过程,您将拥有可以将所有内容包装在 Transaction 中的优势,以便在出现任何异常时可以回滚。在你的开发数据库上,一点一点地编写它并在块中对其进行测试。一切正常后,在您的生产数据库上设置脚本松散。

排序。

于 2008-10-30T12:06:51.853 回答
0

感谢您的建议,但我更愿意提供程序化解决方案。我目前正在使用 Nant / CruiseControl 来自动化测试,并且需要一些我可以根据当前实时遗留内容即时重新创建的东西。

于 2008-10-30T11:45:21.710 回答