我希望Insert
或Update
表中的一行 - 所以我希望尝试使用MERGE语法。我的问题是我的数据(插入/更新)存在于variable table
. 我不确定如何为插入/更新部分编写正确的语法。
这是我的伪代码:-
-- Here's the Variable Table ... and not it has not PK.
DECLARE @PersonId INTEGER
DECLARE @variableTable TABLE (
@SomeScore DECIMAL(10,7),
@SomeAverage DECIMAL(10,7),
@SomeCount INTEGER)
-- Insert or Update
MERGE INTO SomeTable
WHERE PersonId = @PersonId
WHEN MATCHED THEN
UPDATE
SET PersonScore = ??????????
PersonAverage = ???????
PersonCount = ????????
WHEN NOT MATCHED THEN
INSERT(PersonId, PersonScore, PersonAverage, PersonCount)
VALUES(@PersonId, ????, ?????, ????)
..而且我不确定如何确保UPDATE
正确地只更新 1 行(即……这需要一个WHERE
子句吗?)
最后,我的这篇文章基于这个 SO question。