gpt4 book ai didi

sql-server - SSIS 将连续数据从一台服务器/数据库插入到另一台服务器/数据库

转载 作者:行者123 更新时间:2023-12-02 02:15:29 24 4
gpt4 key购买 nike

我有 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 执行一个连接(数据流任务也存在同样的问题)。

我还考虑过临时表。但我不确定这是否是正确的方法。

如果有人有想法/提示,那就太棒了。我还没有找到太多关于此的信息,我想这是一个简单的任务。

非常感谢。

最佳答案

您已经完成大部分工作了。只需使用数据流任务而不是执行 SQL 任务。一个数据流可以有两个不同的连接。

  1. 获取最后一个 id 并将其放入具有 ExecuteSQL 任务的变量中。然后连接一个数据流任务

enter image description here

  • 使用源和目标配置数据流任务
  • enter image description here

  • 在此示例中,我们使用带有 SQL 命令的 OLEDB 源,该命令接受使用“?”的参数
  • enter image description here

  • 我们单击参数按钮并选择要映射到它的变量
  • enter image description here

  • 最后,通过单击目标、选择服务器连接管理器和表,然后单击“映射”选项卡,将目标中的字段映射到第二个服务器
  • 关于sql-server - SSIS 将连续数据从一台服务器/数据库插入到另一台服务器/数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67228642/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com