Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 表内容的批量翻译_Sql_Sql Server_Insert_Identity_Bulk - Fatal编程技术网

Sql 表内容的批量翻译

Sql 表内容的批量翻译,sql,sql-server,insert,identity,bulk,Sql,Sql Server,Insert,Identity,Bulk,我当前正在从旧数据库执行迁移操作。我需要执行数百万原始行的迁移,将原始内容拆分为多个目标父/子行 由于这不是简单的1对1迁移,并且生成的行是基于标识生成的键的父/子行,那么执行迁移的最佳机制是什么 我假设我不能使用批量插入,因为在生成脚本内容时无法确定子行的标识值?目前我能想到的唯一解决方案是显式设置标识,然后为导入设置一个预定的起点 如果其他人有任何意见,我将非常感谢您的反馈。谢谢您的建议,但我更愿意提供一个程序化的解决方案。我目前正在使用Nant/CruiseControl来自动化测试,需要

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

由于这不是简单的1对1迁移,并且生成的行是基于标识生成的键的父/子行,那么执行迁移的最佳机制是什么

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


如果其他人有任何意见,我将非常感谢您的反馈。

谢谢您的建议,但我更愿意提供一个程序化的解决方案。我目前正在使用Nant/CruiseControl来自动化测试,需要基于当前live legacy内容动态重新创建的内容。

感谢您的建议,但我更愿意生成一个编程解决方案。我目前正在使用Nant/CruiseControl来自动化测试,需要一些基于当前live legacy内容的动态重建功能。

这是我的标准方法:

  • 创建新的数据模型
  • 将数据原封不动地拉入新数据库
  • 编写(并运行)SQL脚本以执行迁移
  • 试验
  • (可选)删除包含旧数据的表
使用纯SQL迁移数据可能会有很长的路要走。对于您所描述的情况,您可能不需要处理单个光标就可以将其穿过

在QueryAnalyzer(或dbms中的模拟程序)中运行该进程的好处是,您可以将所有内容包装到事务中,以便在处理过程中出现任何异常时可以回滚。在您的dev数据库上,以小块的形式编写它,并以块的形式进行测试。一切正常后,在生产数据库上释放脚本


排序。

这是我的标准方法:

  • 创建新的数据模型
  • 将数据原封不动地拉入新数据库
  • 编写(并运行)SQL脚本以执行迁移
  • 试验
  • (可选)删除包含旧数据的表
使用纯SQL迁移数据可能会有很长的路要走。对于您所描述的情况,您可能不需要处理单个光标就可以将其穿过

在QueryAnalyzer(或dbms中的模拟程序)中运行该进程的好处是,您可以将所有内容包装到事务中,以便在处理过程中出现任何异常时可以回滚。在您的dev数据库上,以小块的形式编写它,并以块的形式进行测试。一切正常后,在生产数据库上释放脚本

分类