Ответы пользователя по тегу SQL Server
  • Что за ошибку выдает Microsoft SQL Server Management Studio?

    Это означает, что Вы пытаетесь вставить в бинарное или текстовое поле данные больше максимально разрешённой длины. Посмотрите длины столбцов и вставляемых данных. Либо обрезайте данные, что бы они гарантированно могли разместиться в соответствующих полях.
    Ответ написан
    Комментировать
  • 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 фильтр на отсутствие задач
    Ответ написан
    Комментировать
  • T-SQL. Как сделать UPDATE записей в таблице, у которых совпадает, например, GroupID, но разные TypeID?

    UPDATE UserDestination
    SET
      Number = UserSource.Number
    FROM
      Users AS UserSource
    INNER JOIN
      Users AS UserDestination
    ON
      UserSource.GroupID = UserDestination.GroupID
      AND UserSource.TypeID = 1
      AND UserDestination.TypeID = 3
    Ответ написан
    Комментировать