У меня есть таблица, которая содержит T1
три колонки: Id, Name, Address
Sql Update Query
Существует еще одна таблица T2
, которая содержит 2 колонки Id, New_Address
. Id
столбец T2
такой же, как и у T1
.
Мне нужен запрос, который будет обновлять Address
столбец T1
с New_Address
из T2
.
Я могу сделать это через цикл, проверив идентификатор и выполнив инструкцию обновления. Как это можно сделать с помощью запроса?
Это - эквивалентно 'ЛЕВЫЙ JOIN' и - также обновит (установка их' NULL') все строки в Table1, которые не имеют 'NewAdress' в таблице2. –
@ypercube - Одно из возможных преимуществ этого запроса состоит в том, что оно вызывает ошибку, если имеется более одного совпадающего нового адреса, вместо того, чтобы тихо выбирать неопределенный. Его можно было бы переписать как 'SET Address = ISNULL ((выберите New_Address из T2, где T1.ID = T2.ID), Address);' хотя MERGE также дает эту ошибку, встроенную в нее и будет предпочтительнее. –