1

我必须使用向导从另一台服务器的数据库源中导入 500,000 条记录,因为导入向导使用批量插入。我想提供一个带有过滤器的源查询,以检查目标中是否存在记录。

可能吗?最好的方法是什么?

在此处输入图像描述

4

1 回答 1

0

是的,如果两个数据库都在同一台服务器上,或者服务器是链接的,这应该是可行的。

您可以通过运行您尝试在此处作为 Source 直接输入到源数据库上的 SSMS 的查询来测试它,并查看它是否运行(可能受限于 aTOP 100或其他东西)。

如果链接服务器不是一个选项,请查看 SQL Server Integration Services。使用 SSIS,您可以制作数据流(实际上,导入和导出向导创建了一个非常简单的 SSIS 包)。这个问题的答案很好地描述了您的数据流的外观。特别是如果这是一项重复性任务,将其存储在 SSIS 包中可能会有所帮助,然后您可以在 SQL Server 代理中按需运行或计划执行。

如果 SSIS 也不是一个选项,请考虑将数据传输分为两个步骤,首先将所有行从源到目标传输到临时表中,然后根据过滤器从临时表复制到目标表. 然而,这可能会对性能、带宽和磁盘空间造成很大影响,并且是最不优雅的解决方案。

于 2019-07-03T14:42:50.823 回答