在SQL Server 2008中,您可以右键单击数据库并选择“生成脚本...”。然后,您可以选择特定表,并在“要编写脚本的数据类型”下选择“仅数据”。执行此操作时,它会自动在脚本中每隔100条记录插入一行:
打印'处理了100条总记录'
基本上,它“批量”插入100个部分的记录,并在每个批次结束时添加这些PRINT状态。虽然在插入几千条记录时这很好,但是当您导入一百万条记录时它就变得毫无用处。
有没有办法将这个“批量”大小更改为另一个值,例如“1000”?创建脚本时,我无法在选项列表中找到它。更改此值会影响脚本运行时的性能还是存在其他问题?
答案 0 :(得分:0)
查找和替换应解决您的直接问题,但生成INSERT脚本是将数百万条记录从一个数据库复制到另一个数据库的不寻常方式;你想用这种方式做某些特定的理由吗?
更典型的方法是bcp.exe或SSIS(如果您有更复杂的需求),因为它们专门用于处理大量数据。或者如果两个数据库都在同一台服务器上,那么INSERT ... SELECT ...将是最快的方式。 documentation解释了纯TSQL中的各种选项,并提供了性能建议; SSIS是一个更大的话题。