Я хочу обновить таблицу SCD-2, используя оператор MERGE
. Так что я:
MERGE TARGET as t
USING SOURCE as s
ON s.KEY = t.KEY
Случай 1:
WHEN MATCHED and s.CHECKSUM <> t.CHECKSUM
В этом случае мне нужна первая UPDATE
строка в TARGET set row_actual_to = getdate()
И вторая INSERT
строка из SOURCE в TARGET
Вариант 2:
WHEN NOT MATCHED
Всего INSERT
новая строка
Как это сделать в одном выражении?
Перечисление UPDATE
и INSERT
в Case 1 приводит к ошибке: оператор MERGE должен заканчиваться точкой с запятой (;).