0

我需要使用DataEHoraInicialDoFeedback列中的值更新DataEHoraInicial列,其中DescricaoDoFeedback不为空(该字段没有空值)并且DataEHoraInicialDoFeedback为空或者DataEHoraInicialDoFeedback为空并且StatusDoFeedback具有值com Sucesso

UPDATE GestaoDeAlertas
SET GestaoDeAlertas.DataEHoraInicialDoFeedback = GestaoDeAlertas.DataEHoraInicial
WHERE EXISTS
(
    SELECT *
    FROM GestaoDeAlertas
    WHERE DescricaoDoFeedback <> ''
    AND (DataEHoraInicialDoFeedback IS NULL OR DataEHoraInicialDoFeedback= '')
    AND StatusDoFeedback= 'com Sucesso'
)

在我的测试中(我已经复制了表),上面的更新正在更新所有行,就好像它忽略了 where 子句一样。

4

1 回答 1

1

您的查询说:

如果整个表中至少有一行满足指定条件,则进行更新(不管当前行中的值如何)。

我相信Dan Bracuk已经给了你正确的建议(见他的评论):使用直接WHERE子句。

于 2013-05-23T16:01:35.377 回答