使用SSIS将数据从一个数据库复制到另一个数据库

时间:2017-07-14 11:46:29

标签: sql-server ssis etl

我正在编写SSIS包并尝试将数据从一个数据库提取到另一个数据库。我创建了一个执行SQL任务,并使用以下语句INSERT INTO dbo.getParties EXEC dbo.getParties来执行操作。这在源和目标我们在同一个数据库中时有效。当源和目标位于不同的数据库中时,如何处理此问题。您只能将一个连接管理器关联到任务。

我是否连接到源并在SP中调用目标。这是正确的做法吗

以下是我的模板的设计

enter image description here

2 个答案:

答案 0 :(得分:1)

使用Data Flow组件,您可以在其中设置源和目标连接字符串。

enter image description here

..并且在数据流任务内部使用DestinationSource助手,您可以为每个人定义自己的连接字符串。

enter image description here

当然,除了这些之外,您还可以应用任何类型的数据转换。

编辑: 由于您的源是SQL Command(存储过程),因此您需要在source助手中对其进行定义。如您所见,只需将Data Access Mode更改为SQL Command并设置为EXEC getParties

enter image description here

答案 1 :(得分:1)

Execute SQL Task INSERT INTO命令中,只需将数据库名称添加到表名称即可。例如:

INSERT INTO Db1.dbo.Table1
SELECT * FROM Db2.dbo.Table2

旁注:我认为最好使用DataFlow Tasks复制数据,因为它更快,并提供更多控制和错误处理