我有一个存储过程,如果它不存在,则插入一条记录,但我想稍微调整一下。我希望存储过程返回列的值。
到目前为止,我有这个:
BEGIN
IF NOT EXISTS (SELECT *
FROM tableName
WHERE DATALENGTH(ColumnValueToReturn) = 0
AND property = @property ...)
BEGIN
INSERT INTO tableName (...)
VALUES (...)
END
END
我很困惑并且不确定这里最好的选择是什么,有3种情况:
ColumnValueToReturn
不为空ColumnValueToReturn
为空/空我希望在情况1中,存储过程返回ColumnValueToReturn
值,并且在情况2和& 3它返回一个自定义值(0或任何字符串)。
有人可以建议这样做吗?
请注意,这是在Microsoft Flow(https://flow.microsoft.com/en-us/)中使用的,因此有时存在一些限制。
感谢大家的任何帮助或建议!
亲切的问候
答案 0 :(得分:1)
if exists (SELECT 1 FROM tableName
WHERE datalength(**ColumnValueToReturn**)=0
AND property = @property ...)
select ColumnValueToReturn FROM tableName WHERE datalength(**ColumnValueToReturn**)=0
AND property = @property ...
else
begin
INSERT INTO tableName (...)
VALUES (...)
select defaultvalue
end