简体   繁体   English

Azure 数据库 - 使用参数从 Logic App 运行 azure 存储过程

[英]Azure database - run azure stored procedure from Logic App with parameter

I have created an azure stored procedure to update a column in an azure database table.我创建了一个 azure 存储过程来更新 azure 数据库表中的列。 It takes row IDs in a VARCHAR parameter.它采用 VARCHAR 参数中的行 ID。

SET ANSI_NULLS ON设置 ANSI_NULLS ON
GO GO
SET QUOTED_IDENTIFIER ON设置 QUOTED_IDENTIFIER ON
GO GO
CREATE PROCEDURE [dbo].[UpdateLastProcessedSugarContacts] @ContactIds VARCHAR(8000)创建过程 [dbo].[UpdateLastProcessedSugarContacts] @ContactIds VARCHAR(8000)
AS作为
BEGIN开始
UPDATE Contact SET LastProcessedSugar=GETDATE() WHERE ID IN (@ContactIds)更新联系人 SET LastProcessedSugar=GETDATE() WHERE ID IN (@ContactIds)
END结尾

GO GO

When I call this procedure from a logic app that sends comma separated string in the parameter, it doesn't update the rows because I believe that it adds single quotes before and after the input, and ID column is an INTEGER.当我从在参数中发送逗号分隔字符串的逻辑应用程序调用此过程时,它不会更新行,因为我相信它会在输入之前和之后添加单引号,并且 ID 列是 INTEGER。 Is there a way to compare ID column in a stored procedure with IN operator?有没有办法将存储过程中的 ID 列与 IN 运算符进行比较? My input will be like 186,192,193我的输入将是 186,192,193

If you insist on passing in a comma-delimited list, then split the value:如果您坚持传入逗号分隔的列表,则拆分值:

UPDATE Contact
    SET LastProcessedSugar = GETDATE()
    WHERE ID IN (SELECT * FROM STRING_SPLIT(@ContactIds, ','));

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM