我的源表和目标表存在于不同的服务器上。我 Execute SQL Task 用来编写合并语句以使其同步。
Execute SQL Task
谁能解释我如何引用存在于我内部不同服务器上的两个不同数据库 Execute SQL Task ?
我建议采用以下方法,而不是尝试在两个数据库服务器之间使用 MERGE 语句 Execute SQL Task 。
MERGE
OLEDB Connection Managers 为每个SQL Server实例创建两个。例如,如果您有两个数据库SourceDB和DestinationDB,则可以创建两个名为 OLEDB_SourceDB 和的连接管理器 OLEDB_DestinationDB 。如果愿意,也可以使用ADO.NET连接管理器。根据我在基于SSIS的书籍中所阅读的内容,OLEDB的性能优于ADO.NET连接管理器。
OLEDB Connection Managers
OLEDB_SourceDB
OLEDB_DestinationDB
将a拖放Data Flow Task到“ 控制流” 选项卡上。
Data Flow Task
在“ 数据流任务”中 ,配置, OLE DB Source 以从源数据库表中读取数据。
OLE DB Source
使用 Lookup Transformation 该命令使用源表和目标表之间的唯一键检查目标表中是否已存在数据。
Lookup Transformation
如果源表行在 does not exist 目标表中,则使用以下命令将行插入到目标表中OLE DB Destination
does not exist
OLE DB Destination
如果源表行在 exists 目标表中,则使用another将这些行插入到目标数据库中的登台表中OLE DB Destination。
exists
Execute SQL Task 在“ 控制流” 选项卡上的“数据流任务”之后放置一个。编写一个查询,该查询将使用登台表数据来更新目标表中的数据。
OLEDB Connection Managers 为每个SQL Server实例创建两个。例如,如果您有两个数据库SourceDB和DestinationDB,则可以创建两个名为 OLEDB_SourceDB 和的连接管理器 OLEDB_DestinationDB 。
在“ 数据流任务”中 ,配置, OLE DB Source 以从源数据库表中读取数据并使用插入到临时表中 OLE DB Destination 。
在“ 控制流” 选项卡上的 Execute SQL Task 后面放置一个。编写一个查询,该查询将在登台表和目标表之间使用MERGE语句。 Data Flow Task __