【问题标题】:Azure Logic App delete Row is not workingAzure 逻辑应用删除行不起作用
【发布时间】:2017-05-30 09:10:56
【问题描述】:

我有一个包含复合主键的表。

CONSTRAINT [PK_FileContainerFiles] PRIMARY KEY CLUSTERED 
(
    [FileId] ASC,
    [ContainerId] ASC
)

我正在尝试使用逻辑应用连接器删除该行。如果主键只有一个元素,它就可以工作。

如何在 Logic 应用的“RowId”中输入两个标识符。当我尝试以下类似的操作时,出现错误。这是 Microsoft 逻辑应用程序问题吗?任何的想法。请帮忙。

【问题讨论】:

    标签: sql-server azure azure-logic-apps


    【解决方案1】:

    是的,这是可能的。 SQL 连接器(顺便说一句,它与流以及 LogicApps 和 PowerApps 中使用的连接器相同)将主键视为 SQL。也就是说,您只需按顺序使用以逗号分隔的每个键来构造“完整”键。

    我使用复合键的例子:

    @{join(createArray(items('For_each')?['BUKRS'],items('For_each')?['LIFNR']),',')}
    

    TLDR:以逗号分隔的值。

    【讨论】:

      【解决方案2】:

      Row Id 代表您要删除的行的唯一标识符。 因此,如果您想根据这两个输入参数删除一行,您首先需要找到一种方法来返回您要删除的行的行 ID(唯一标识符),然后执行删除每个返回行的行。

      另一种方法是使用存储过程来处理行的删除。

      供参考: https://docs.microsoft.com/en-us/connectors/sql/

      【讨论】:

      • 谢谢。我不确定如何将两个唯一标识符发送到 RowID。同意,StoredProc 可以工作,我想知道如何将两个标识符传递给 RowId。
      • 删除行操作只允许 RowId 使用一个标识符。所以我不是 100% 确定你可以通过这个动作实现你想要的。如果您查看文档,RowId 需要您的表的唯一标识符,这与主键不同。所以你可以做的是在你的表中添加一个标识列。使用您的 FileId 和 ContainerId 执行“获取行”以返回匹配的行,包括身份列。遍历“Get Rows”的结果集并使用 Identity-column 作为 RowId 的值执行“Delete Row”。
      猜你喜欢
      • 1970-01-01
      • 2018-10-04
      • 2021-06-27
      • 2021-08-25
      • 2021-09-14
      • 2017-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多