Команда SQL MERGE: объединение данных с помощью операций вставки, обновления и удаления

В SQL команда «MERGE» используется для объединения операций вставки, обновления и удаления данных в одном операторе. Он позволяет синхронизировать данные в одной таблице с данными в другой таблице на основе заданного условия. Вот некоторые методы и примеры использования команды «ОБЪЕДИНИТЬ»:

Метод 1: базовый синтаксис слияния

MERGE INTO target_table AS T
USING source_table AS S
ON (T.column = S.column)
WHEN MATCHED THEN
    UPDATE SET T.column = S.column
WHEN NOT MATCHED THEN
    INSERT (column1, column2, ...)
    VALUES (S.column1, S.column2, ...)
WHEN NOT MATCHED BY SOURCE THEN
    DELETE;

Метод 2: объединение с дополнительными условиями

MERGE INTO target_table AS T
USING source_table AS S
ON (T.column = S.column)
WHEN MATCHED AND T.column2 = 'value' THEN
    UPDATE SET T.column = S.column
WHEN NOT MATCHED AND S.column2 = 'value' THEN
    INSERT (column1, column2, ...)
    VALUES (S.column1, S.column2, ...)
WHEN NOT MATCHED BY SOURCE AND T.column2 = 'value' THEN
    DELETE;

Метод 3: объединение с предложением вывода

MERGE INTO target_table AS T
USING source_table AS S
ON (T.column = S.column)
WHEN MATCHED THEN
    UPDATE SET T.column = S.column
WHEN NOT MATCHED THEN
    INSERT (column1, column2, ...)
    VALUES (S.column1, S.column2, ...)
OUTPUT $action, inserted.*, deleted.*;