Ответы пользователя по тегу Оптимизация SQL-запросов
  • SQL запрос (UPDATE)?

    Синтаксис команды T-SQL UPDATE позволяет обновлять одну таблицу, но для фильтрации по аналогии с командой SELECT можно использовать множество таблиц.
    Т.е. В общем виде это выглядит так
    UPDATE
      ОбновляемаяТаблица
    SET
      ПолеОбновляемойТаблицы1 = Значение1
      , ПолеОбновляемойТаблицы2 = Значение2
    FROM
      ОбновляемаяТаблица
    LEFT OUTER JOIN
      ДополнительнаяТаблица
    ON
      ДополнительнаяТаблица.Ключ = ОбновляемаяТаблица.Ключ
    WHERE
      Условия фильтрации

    Для условий вашей задачи можно по этому шаблону преобразовать условия из вашего SELECT запроса в условия для UPDATE:
    UPDATE
      Account
    SET
      UsrLastActivityDate = GETDATE()
      , UsrProsrochen = 1
    FROM
      Account account -- Основная обновляемая таблица
    LEFT OUTER JOIN
     Activity activity -- дополнительная таблица с информацией о задачах
    ON
     activity.AccountId = account.Id
    WHERE 
     TypeId = '03a75490-53e6-df11-971b-001d60e938c6'
      AND DATEDIFF(dd, ModifiedOn ,GETDATE()) > 60
      AND activity.Id IS NULL -- аналогичный SELECT фильтр на отсутствие задач
    Ответ написан
    Комментировать