2016-04-13 3 views
0

Я хочу обновить столбцы дат значениями NULL с использованием существующего значения плюс 5 лет, PK - IdentityCourseID.SQL Server 2012, создающий цикл обновления более 500 существующих столбцов

Это то, что я пытаюсь достичь:

UPDATE IdentityCourses 
SET Expiry = DATEADD(year, 5, IdentityCourses.DateAttained) 
WHERE IdentityCourseID = (SELECT IdentityCourseID 
          FROM IdentityCourses 
          INNER JOIN UnitIdentities ON IdentityCourses.IdentityID = UnitIdentities.IdentityID 
          WHERE (IdentityCourses.CourseID = 1041) 
          AND (UnitIdentities.IsActiveMember = 1) 
          AND (UnitIdentities.EndDate IS NULL) 
          AND (IdentityCourses.Expiry IS NULL)) 
+1

Похоже, вам нужно использовать «Update From» Синтаксис. См. Этот вопрос для примера: http://stackoverflow.com/questions/2334712/update-from-select-using-sql-server – momar

ответ

0

Я думаю, что это будет работать для вас:

UPDATE ic 
SET Expiry = DATEADD(year, 5, ic.DateAttained) 
FROM IdentityCourses AS ic 
INNER JOIN UnitIdentities AS ui 
    ON ic.IdentityID = ui.IdentityID 
WHERE ic.CourseID = 1041 
    AND ui.IsActiveMember = 1 
    AND ui.EndDate IS NULL 
    AND ic.Expiry IS NULL 
+0

Спасибо, Питер работал так, как я хотел. – Coyote

Смежные вопросы