我需要一个存储过程,它将根据条件更新表上的错误消息列,如果dob为null或大于当前日期,则错误消息列应更新为“invalid dob”并且还基于id必须更新它,如果dob小于当前日期并且它不为null,则不应更新错误消息列。我需要这个查询的更新语句,我尝试了但它更新所有列而不检查条件。所以请为此查询提供解决方案,谢谢。
答案 0 :(得分:0)
奇怪的要求,但它非常简单。
update SomeTable
set ErrorMessage = 'Invalid DOB'
where DOB is null
or DOB > getdate()
答案 1 :(得分:0)
尝试这样的事情,
create table TestEmployee (ID int, DOB DateTime, ErMsg varchar(20))
insert into TestEmployee (ID,DOB)
values (1, '10/02/2013'),
(2, null),
(3, '1/1/2016')
UPDATE TestEmployee SET ErMsg = 'Invalid DOB'
WHERE ID = @ID AND --This should based on your condition
DOB > GETDATE () OR DOB IS NULL
SELECT * FROM TestEmployee