我目前正在从旧数据库执行迁移操作。我需要执行数百万个原始行的迁移,将原始内容分成多个目标父/子行。
由于它不是简单的1对1迁移,并且生成的行是基于身份生成密钥的父/子行,执行迁移的最佳机制是什么?
我假设我不能使用批量插入,因为在生成脚本内容时无法确定子行的标识值?我目前唯一能想到的解决方案是明确设置标识,然后为导入设置一个预定的起点。
如果其他人有任何意见,我会很感激您的意见。
答案 0 :(得分:1)
这是我的标准方法:
使用纯SQL迁移数据可以获得很长的路要走。对于您描述的情况,您可能不需要处理单个Cursor来实现它。
在查询分析器(或dbms中的模拟)中运行该过程,您将拥有以下优势:您可以将所有内容包装在事务中,以便在此过程中出现任何问题时可以回滚。在dev数据库中以小块编写它并在块中进行测试。一切正常后,在生产数据库上设置脚本松散。
排序。
答案 1 :(得分:0)
感谢您的建议,但我更愿意制作程序化解决方案。我目前正在使用Nant / CruiseControl来自动化测试,并且需要我可以根据当前的实时遗留内容动态重新创建的内容。