Я обновляю некоторые столбцы и увеличиваю счетчик каждый раз, когда меняю строку.
Оператор обновления является результатом объединения (упрощенный код ниже):
update @to
set
t.num += 1
from @to t
join @source s
on t.id = s.id
Когда я обновляю одну строку более одного раза, столбцы содержат последнее значение (как и должно быть), но счетчик увеличивается только один раз. Поэтому, если соединение возвращает (id = 1, id = 1), моя таблица содержит (id = 1, num = 1), а не (id = 1, num = 2).
Есть способы обойти это (например, еще одно объединение на выбранном счетчике), но мне интересно, есть ли способ сделать это простым.