Обновление записей соответствует и не соответствует? - PullRequest
0 голосов
/ 25 сентября 2018

У меня есть хранимая процедура TSQL, которая выполняет ОБНОВЛЕНИЕ для таблицы, где должны соответствовать определенные критерии.Это обновляет «ProcessDate» для GETDATE ().Однако все несопоставленные данные никогда не обновляют эту ProcessDate (поскольку совпадений не было, она остается равной NULL).Есть ли способ обновить ProcessDate для записей, которые не совпадают в то же время?Моим текущим решением было бы просто добавить дополнительный оператор UPDATE после первого запуска, чтобы вернуться назад и обновить все ProcessDate = NULL до GETDATE (), но не был уверен, есть ли лучший способ сделать это или нет?Спасибо.

Ответы [ 2 ]

0 голосов
/ 26 сентября 2018

Вы можете использовать case и переместить туда свои критерии выбора из where части:

update t set ProcessDate = case
    when <MyCriteriaMet> then getdate()
    else @MyOtherValue
end
from dbo.MyTable t;
0 голосов
/ 26 сентября 2018

Похоже, вы могли бы использовать MERGE, с разделом для WHEN MATCHED и разделом для WHEN NOT MATCHED.Вы можете контролировать, какое ОБНОВЛЕНИЕ относится к какой ситуации.Если вы предоставите запросы, которые у вас есть, я могу помочь создать MERGE, если потребуется.

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