我想知道将表中的数据从一个数据库迁移到另一个数据库的最佳方法,无论它是相同的服务器还是不同的服务器。
我开始使用SSIS,使用一个源表,其中包含要迁移的表名列表,并使用for for each循环任务,每个表名都将被提取,使用sql任务截断,然后使用数据流任务进行迁移但后来我实现为了动态更改OLE DB源和目标中的列映射,我将不得不使用脚本组件/脚本任务。我不确定当记录超过100万时,迁移是否会更快。
有没有办法在SSIS中实现这一目标?
BCP / SQLBulkCopy会更快吗?
对于BCP,看起来必须将数据提取到文件然后导入。它比SQLBulkCopy更快吗?
答案 0 :(得分:1)
如果是一次性转移,则导出到文件&导入可以工作,或链接服务器“select * into”。如果需要保持同步,可以使用SQL Server内置复制(听起来像源和目标都是MS-SQL),或者可以检查支持多个源/目标的第三方工具,例如Attunity Replicate(免责声明:我为Attunity工作)。它有一个很好的GUI&支持众多异构源/目标。
答案 1 :(得分:0)
对于服务器之间的简单传输,您可以在服务器对象中创建链接服务器引用,并在目标服务器上执行简单的INSERTS。