Azure 数据库 - 运行 来自 Logic App 的带有参数的 azure 存储过程
Azure database - run azure stored procedure from Logic App with parameter
我创建了一个 azure 存储过程来更新 azure 数据库中的列 table。它采用 VARCHAR 参数中的行 ID。
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[UpdateLastProcessedSugarContacts]
@ContactIds VARCHAR(8000)
AS
BEGIN
UPDATE Contact SET LastProcessedSugar=GETDATE() WHERE ID IN (@ContactIds)
END
GO
当我从在参数中发送逗号分隔字符串的逻辑应用程序调用此过程时,它不会更新行,因为我相信它会在输入前后添加单引号,并且 ID 列是一个 INTEGER .有没有办法将存储过程中的 ID 列与 IN 运算符进行比较?我的输入将是 186,192,193
如果你坚持要传入一个逗号分隔的列表,那么拆分值:
UPDATE Contact
SET LastProcessedSugar = GETDATE()
WHERE ID IN (SELECT * FROM STRING_SPLIT(@ContactIds, ','));
我创建了一个 azure 存储过程来更新 azure 数据库中的列 table。它采用 VARCHAR 参数中的行 ID。
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[UpdateLastProcessedSugarContacts] @ContactIds VARCHAR(8000)
AS
BEGIN
UPDATE Contact SET LastProcessedSugar=GETDATE() WHERE ID IN (@ContactIds)
ENDGO
当我从在参数中发送逗号分隔字符串的逻辑应用程序调用此过程时,它不会更新行,因为我相信它会在输入前后添加单引号,并且 ID 列是一个 INTEGER .有没有办法将存储过程中的 ID 列与 IN 运算符进行比较?我的输入将是 186,192,193
如果你坚持要传入一个逗号分隔的列表,那么拆分值:
UPDATE Contact
SET LastProcessedSugar = GETDATE()
WHERE ID IN (SELECT * FROM STRING_SPLIT(@ContactIds, ','));