我正在编写SSIS包并尝试将数据从一个数据库提取到另一个数据库。我创建了一个执行SQL任务,并使用以下语句INSERT INTO dbo.getParties EXEC dbo.getParties来执行操作。这在源和目标我们在同一个数据库中时有效。当源和目标位于不同的数据库中时,如何处理此问题。您只能将一个连接管理器关联到任务。
我是否连接到源并在SP中调用目标。这是正确的做法吗
以下是我的模板的设计
答案 0 :(得分:1)
使用Data Flow组件,您可以在其中设置源和目标连接字符串。
..并且在数据流任务内部使用Destination
和Source
助手,您可以为每个人定义自己的连接字符串。
当然,除了这些之外,您还可以应用任何类型的数据转换。
编辑:
由于您的源是SQL Command(存储过程),因此您需要在source
助手中对其进行定义。如您所见,只需将Data Access Mode
更改为SQL Command
并设置为EXEC getParties
:
答案 1 :(得分:1)
在Execute SQL Task
INSERT INTO命令中,只需将数据库名称添加到表名称即可。例如:
INSERT INTO Db1.dbo.Table1
SELECT * FROM Db2.dbo.Table2
旁注:我认为最好使用DataFlow Tasks复制数据,因为它更快,并提供更多控制和错误处理