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