【问题标题】:Move data between different servers在不同服务器之间移动数据
【发布时间】:2018-11-04 23:15:23
【问题描述】:

我正在处理一个需要自动运行插入语句来插入结果集的项目 - 问题是我需要它从 SQL Server 转到 DB2 服务器。我无法创建文件或脚本,然后将其导入或在另一端运行。我需要从 SQL Server 端插入或更新 DB2 端。

这可能吗?我需要它作为 SQL Server 中存储过程的一部分自行运行。

【问题讨论】:

    标签: sql-server db2 dbeaver


    【解决方案1】:

    您正在寻找linked server feature

    通常将链接服务器配置为使数据库引擎能够执行 Transact-SQL 语句,该语句包括另一个 SQL Server 实例或另一个数据库产品(如 Oracle)中的表。许多类型的 OLE DB 数据源都可以配置为链接服务器,包括 Microsoft Access 和 Excel。链接服务器具有以下优势:

    • 从 SQL Server 外部访问数据的能力。
    • 能够在整个企业的异构数据源上发布分布式查询、更新、命令和事务。
    • 以类似方式处理不同数据源的能力。

    (我相信大多数主要的 RDBMS 都有类似的功能)

    在大多数情况下,这实质上允许您将其他数据库中的表或源视为 SQL Server 实例的一部分 - INSERT 语句应该“正常”工作.

    【讨论】:

    • 也就是说,任何需要跨边界发送大量数据的事情 - 例如,如果用户和销售存储在单独的数据库中,并且您尝试查找所有在网上购物的用户的电子邮件特定日期 - 由于需要在整个网络中对表的大部分(甚至整个)进行洗牌,因此往往会受到很大的惩罚。如果您有大量的间歇性负载,您可能会发现使用导入/导出实用程序会更快。但是,单行通常应该没问题。
    • 这很有帮助,谢谢。我看到的问题是我认为 SSMS 不能连接到 DB2 数据库。我一直在尝试,但它不起作用。我可能得看看 dbeaver 能不能做到。
    【解决方案2】:

    如前所述,您可以使用 SQL Server 端的链接服务器在两台服务器之间执行操作。在从 SQL Server 在 DB2 上运行 DML 方面我没有做太多工作,但根据我的经验,对于使用 OLE DB 连接将数据从 DB2 拉到 SQL Server 的事务,SSIS 的性能远优于链接服务器。您可以在 SSIS here 中阅读有关 OLE DB 连接的更多信息,并且您需要参考用于在此处设置连接的详细信息的特定 DB2 类型(大型机、LUW 等)的 DB2 文档。如果您设置 SSIS 目录,您可以使用 SQL Server 存储过程运行包,您可以直接使用或从现有用户存储过程执行。

    【讨论】:

      猜你喜欢
      • 2012-06-05
      • 2010-10-01
      • 2016-11-29
      • 1970-01-01
      • 2017-03-16
      • 1970-01-01
      • 2014-09-29
      • 2012-09-26
      • 2012-05-20
      相关资源
      最近更新 更多