Я хотел бы обновить запись с двумя датами, оставив существующие данные без изменений, если у меня нет нового значения для обновления.
Вот пример записи таблицы:
id last_foo last_bar
-- ---------- ----------
1 2010-05-30 2010-05-30
И запрос, который я использую:
UPDATE sampledates
SET last_foo = @LastFoo,
last_bar = @LastBar
WHERE id = @ID;
Если мои обнуляемые даты и времени LastFoo
или LastBar
равны нулю, я хотел бы оставить существующее значение SQL как есть, в противном случае обновить.
Например, скажем, я обновляю эту запись следующими значениями (это C #, но применяется любой язык):
DateTime? LastFoo = new DateTime('2010-06-04');
DateTime? LastBar = null;
Я бы хотел, чтобы запись была:
id last_foo last_bar
-- ---------- ----------
1 2010-06-04 2010-05-30
Я понимаю, что могу изменить свой текст запроса, чтобы пропустить второй столбец, если значение равно нулю, но мне было интересно, есть ли способ оставить запрос как есть и указать, что я не изменяю указанный столбец.