Когда значения цели и источника совпадают, обновляется ли команда слияния? - PullRequest
0 голосов
/ 16 октября 2019

Не удалось найти ответ где-нибудь для этого, пытаясь понять, используя команду Merge, есть ли в моей целевой таблице строка, идентичная моей исходной таблице, если она в любом случае обновит значения изисходная таблица.

Другими словами, у меня есть следующие таблицы:

enter image description here

Будет ли исходная таблица по-прежнему выполнять обновление целевой таблицы вситуация выше?

Что я пытаюсь сделать, если целевая таблица равна исходной таблице, ничего не делать. Применяйте функции обновления / вставки / удаления только в том случае, если между таблицами имеется истинная разница.

И БОНУСНЫЕ ТОЧКИ, ЕСЛИ ВОЗМОЖНО, запускайте обновление только для конкретного столбца, который отличается не всей строкой.

Боюсь, что в настоящее время, когда условие «соответствует», оно обновит значения независимо от того, действительно ли они совпадают.

Теперь я понимаю, даже если значенияобновленные они не будут неправильными, но я пытаюсь отслеживать истинные корректировки таблицы с помощью операций вставки / обновления / удаления.

MERGE target_table USING source_table
ON merge_condition
WHEN MATCHED
    THEN update_statement
WHEN NOT MATCHED
    THEN insert_statement
WHEN NOT MATCHED BY SOURCE
    THEN DELETE;

1 Ответ

1 голос
/ 16 октября 2019

Кажется, он все еще помечен как обновленный с точки зрения активности журнала, но сами данные не обновляются (за исключением нескольких ситуаций, отмеченных по ссылке ниже). Пожалуйста, посмотрите этот вопрос на DBA Stack Exchange

DBA StackExchange - Необновляющиеся Обновления

Влияние Необновляющихся Обновлений

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...