【发布时间】:2018-04-18 14:00:48
【问题描述】:
我有一个存储过程,如果它不存在,它会插入一条记录,但我想稍微调整一下。我希望存储过程返回列的值。
到目前为止,我有这个:
BEGIN
IF NOT EXISTS (SELECT *
FROM tableName
WHERE DATALENGTH(ColumnValueToReturn) = 0
AND property = @property ...)
BEGIN
INSERT INTO tableName (...)
VALUES (...)
END
END
我对这里的最佳选择感到困惑和不确定,有 3 种情况:
- 已有记录+
ColumnValueToReturn不为空 - 有一条现有记录 +
ColumnValueToReturn为 NULL/空 - 没有现有记录
我希望在情况 1 中,存储过程返回 ColumnValueToReturn 值,在情况 2 和 3 中返回自定义值(0 或任何字符串)。
任何人都可以建议如何做到这一点?
请注意,这是在 Microsoft Flow (https://flow.microsoft.com/en-us/) 中使用的,因此有时会有一些限制。
感谢大家的帮助或建议!
亲切的问候
【问题讨论】:
-
您使用的是 MS SQL Server 吗? (如果是,请在您的问题中添加
标签。) -
你知道在调用存储过程之前你是在执行更新还是插入?
-
@jarlh,完成,抱歉没有指定。 罗斯布什,不,我没有,这就是为什么我在 SP 中检查 IF NOT EXISTS ...。
-
使用 if/else 逻辑如下:
标签: sql-server stored-procedures return-value power-automate