当前位置: 首页 > 面试题库 >

如何在多个数据库服务器上使用MERGE语句?

百里丁雨
2023-03-14
问题内容

我的源表和目标表存在于不同的服务器上。我 Execute SQL Task 用来编写合并语句以使其同步。

谁能解释我如何引用存在于我内部不同服务器上的两个不同数据库 Execute SQL Task


问题答案:

可能的方法:

我建议采用以下方法,而不是尝试在两个数据库服务器之间使用 MERGE 语句 Execute SQL Task

方法1:

  • OLEDB Connection Managers 为每个SQL Server实例创建两个。例如,如果您有两个数据库SourceDB和DestinationDB,则可以创建两个名为 OLEDB_SourceDB 和的连接管理器 OLEDB_DestinationDB 。如果愿意,也可以使用ADO.NET连接管理器。根据我在基于SSIS的书籍中所阅读的内容,OLEDB的性能优于ADO.NET连接管理器。

  • 将a拖放Data Flow Task到“ 控制流” 选项卡上。

  • 在“ 数据流任务”中 ,配置, OLE DB Source 以从源数据库表中读取数据。

  • 使用 Lookup Transformation 该命令使用源表和目标表之间的唯一键检查目标表中是否已存在数据。

  • 如果源表行在 does not exist 目标表中,则使用以下命令将行插入到目标表中OLE DB Destination

  • 如果源表行在 exists 目标表中,则使用another将这些行插入到目标数据库中的登台表中OLE DB Destination

  • Execute SQL Task 在“ 控制流” 选项卡上的“数据流任务”之后放置一个。编写一个查询,该查询将使用登台表数据来更新目标表中的数据。

检查以下SO问题的答案以获取详细步骤。

如何在SSIS包中优化Upsert(更新和插入)操作?

方法2:

  • OLEDB Connection Managers 为每个SQL Server实例创建两个。例如,如果您有两个数据库SourceDB和DestinationDB,则可以创建两个名为 OLEDB_SourceDB 和的连接管理器 OLEDB_DestinationDB

  • 将a拖放Data Flow Task到“ 控制流” 选项卡上。

  • 在“ 数据流任务”中 ,配置, OLE DB Source 以从源数据库表中读取数据并使用插入到临时表中 OLE DB Destination

  • 在“ 控制流” 选项卡上的 Execute SQL Task 后面放置一个。编写一个查询,该查询将在登台表和目标表之间使用MERGE语句。 Data Flow Task __



 类似资料:
  • 问题内容: 我正在寻找一种处理以下情况的方法: 我们有一个数据库服务器,上面有多个数据库(所有数据库都有相同的架构,不同的数据)。 我们正在寻找一种查询所有数据库的方法(并且它易于配置,因为可以随时添加更多数据库)。此数据访问必须是实时的。 举例来说,假设您有一个插入订单的应用程序- 每个应用程序都有自己的数据库等。我们正在寻找的是一种有效的方式,使单个应用程序可以访问所有其他数据库中的订单信息,

  • 我有一个MySQL数据库存在于一个远程服务器上。我只有sql连接特权。我没有对服务器的FTP访问权限,我需要对数据库进行一次完整的转储。我试过,但问题是它在服务器上创建输出,由于我没有FTP,所以无法从服务器上获取输出。 我如何做一个干净的备份,并在我的本地机器中获得转储(当然,备份应该在我的本地机器中恢复)?

  • 问题内容: 我想在系统中合并多个数据库。大多数情况下,数据库是MySQL。但是将来可能会有所不同,即Admin可以生成这样的报告,该报告是 使用异构 数据库系统的 来源 。 所以我的问题是 Laravel是否提供了Facade 来应对这种情况?还是任何其他具有更合适问题处理能力的框架是? 问题答案: [**使用> = 5.0**](https://github.com/laravel/larave

  • 我已经将一个数据库从mysql迁移到SQL Server(politics),这是使用UTF8的原始mysql数据库。 现在我读到https://dba.stackexchange.com/questions/7346/sql-server-2005-2008-utf-8-collation-charsetSQL服务器2008不支持utf8,这是一个笑话吗? SQL Server承载多个数据库,大

  • 我试图在一台机器上连接多个独立的Neo4j实例。 因为我无法找到正确的文档来正确安装Neo4j。 由于我是Neo4j graph db的新手,如果有人能在这方面帮助我,那将非常有帮助。 我使用的是Neo4j版本3.2。2. 下面是我试图在路径下启动新neo4j实例的命令: 我无法启动两个neo4j实例,因为我有两个具有不同端口的文件。 请分享你的想法。

  • 问题内容: 是否有使用freebase数据转储创建数据库的任何现有方法,类似于freebase所提供的,但是在您自己的服务器上?相当多的免费库,但不是通过API在本地进行的吗? 我想可以创建,但是已经有解决方案了吗?还是没有使用API​​的类似数据的其他替代解决方案?我也没有为dbpedia找到这个: 问题答案: 看一下Google Code上的freebase-quad-rdfize项目。它应该