Я хочу 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
?)
Наконец, я основал этот пост на этом ТАКОМ вопросе .