问题描述
我有 2 个不同的服务器(Server1 和 Server2)。每个上都有一个具有相似结构的数据库(db1 和 db2)。 db1中有连续数据插入。
我想要一个作业,使用 SSIS 和 sql Server 代理作为调度程序,每天将数据从一台服务器 (db1) 提取到另一台服务器 (db2)。 我只想将新的数据(之前作业中没有传输的数据)传输到db2。
为此,我想从 db2 中选择最后一个 Id,并使用它来仅传输 db1 中具有更高 id 的数据。
这个概念本身有效,但我不知道如何用 SSIS 实现它。
在 SSIS 中,我尝试使用 sql 执行任务并将其安全地放入变量中:
第一个任务(保护变量中的 id):
SELECT TOP (1) [ID] FROM [DB2] ORDER BY ID DESC
第二个任务(将行安全地放入对象变量中):
SELECT * FROM [DB1] where ID > ?
这可行,但如何将对象变量插入 db2。
有没有更干净的方法,比如:
Insert into Server2.[db2] select * from Server1.[db1] where ID > ?
问题是,SSIS 只允许每个 sql 执行一个连接(数据流任务也有同样的问题)。
我也考虑过临时表。但我不确定这是否正确。
如果有人有想法/提示会很棒。我没有找到太多关于此的信息,我想这是一项简单的任务。
非常感谢。