【问题标题】:Biztalk Insert or Update in to database using the SQL bindingsBiztalk 使用 SQL 绑定在数据库中插入或更新
【发布时间】:2015-01-30 18:48:29
【问题描述】:

我有一个要求,必须根据目的地选择一个数据库中的数据并将其插入或更新到另一个数据库中。我已经使用 DBBinding 从源中进行选择。在目标中我必须使用存储过程来执行此操作,还是在 DBBinding 中选择插入和更新将为此工作。

【问题讨论】:

    标签: biztalk biztalk-2010 biztalk-2013


    【解决方案1】:

    您可以使用插入或更新,除非您在存储过程中有一些复杂的要求。

    【讨论】:

    • 感谢 Vikas,我的要求是,如果数据库中不存在数据,则必须插入,否则必须更新。如果我在 SQLBinding 中选择插入和更新,它将给我 4 个模式。像 Insert 和 InsertRespone、Update 和 UpdateResponse。所以我的困惑是我将如何从源映射到目的地。你能解释一下吗?
    • 这实际上取决于您的解决方案需要处理的设计和消息量。如果您有编排,那么您可以在那里设计整个过程,并根据记录是否存在使用插入或更新。此解决方案需要多次调用数据库,这与可管理的卷一样好,并且您需要在 BizTalk 中处理数据。在低容量情况下,或者您只是想避免编排,那么您应该创建一个存储过程来执行此操作。这两种方法都有效,您只需要在您的情况下使用两者中最好的。
    • 对不起 Vikas 我有点困惑。我有一个 Orchestration,我是否必须设置两个映射,一个用于插入,另一个用于更新。
    • 是的,您还需要进行选择调用以查看记录是否存在
    【解决方案2】:

    您可能应该为此使用存储过程并在其中执行 upsert。您可以使用复合操作在一个事务中将所有数据发送到 SQL,或者使用表值参数进行调查,以便您可以将多行发送到存储过程(取决于行数!)。

    为此,您需要在源数据和复合架构之间创建一个MAP

    这样您只关心存储过程的架构和复合架构。

    见: https://msdn.microsoft.com/en-us/library/dd788136.aspx

    HTH

    【讨论】:

      猜你喜欢
      • 2019-02-02
      • 1970-01-01
      • 1970-01-01
      • 2011-02-16
      • 2019-04-19
      • 1970-01-01
      • 1970-01-01
      • 2018-04-27
      • 1970-01-01
      相关资源
      最近更新 更多