SQL 如果不存在则插入的服务器存储过程和 returns 特定 属性(列值)
SQL Server stored procedure that inserts if not exist and returns a specific property (column value)
我有一个存储过程,可以在记录不存在时插入该记录,但我想对其进行一些调整。我希望存储过程 return 列的值。
到目前为止我有这个:
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/Empty
- 没有现有记录
我希望在情况 1 中,存储过程 return 是 ColumnValueToReturn
值,在情况 2 和 3 中,它 return 是自定义值(0 或任何字符串).
任何人都可以建议这样做的方法吗?
请注意,这是在 Microsoft Flow (https://flow.microsoft.com/en-us/) 中使用的,因此有时会有一些限制。
感谢大家的帮助或建议!
亲切的问候
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
我有一个存储过程,可以在记录不存在时插入该记录,但我想对其进行一些调整。我希望存储过程 return 列的值。
到目前为止我有这个:
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/Empty - 没有现有记录
我希望在情况 1 中,存储过程 return 是 ColumnValueToReturn
值,在情况 2 和 3 中,它 return 是自定义值(0 或任何字符串).
任何人都可以建议这样做的方法吗?
请注意,这是在 Microsoft Flow (https://flow.microsoft.com/en-us/) 中使用的,因此有时会有一些限制。
感谢大家的帮助或建议!
亲切的问候
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