T-SQL Как обновить только нижнюю / последнюю строку?

Я хочу обновить нижнюю / последнюю строку в моей таблице. Я пытался реализовать это решение, но ничто не выглядит как правильный синтаксис:

UPDATE TOP(1) @ResultTable
SET PeriodLastDate=DATEADD(DAY,-1,PeriodLastDate)
ORDER BY PeriodID DESC

ИЛИ

UPDATE TOP(1) @ResultTable
SET PeriodLastDate=DATEADD(DAY,-1,PeriodLastDate)
FROM @ResultTable
ORDER BY PeriodID DESC

То, что я до сих пор работаю, это:

UPDATE @ResultTable
SET PeriodLastDate=DATEADD(DAY,-1,PeriodLastDate)
WHERE PeriodID=(SELECT COUNT(PeriodID) FROM @ResultTable)-1

, но это не всегда работает, так как в моей функции некоторые записи удаляются, и у меня не всегда есть PeriodID, увеличенные на 1.

8
задан Community 23 May 2017 в 11:54
поделиться