tsql – T-SQL如何仅更新底部/最后一行?

我想更新表格的底部/最后一行.我已经尝试实现 this解决方案,但似乎没有任何正确的语法:
UPDATE TOP(1) @ResultTable
SET PeriodLastDate=DATEADD(DAY,-1,PeriodLastDate)
ORDER BY PeriodID DESC

要么

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

我到现在所做的工作是:

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

但这并不总是有效,因为在我的函数中,一些记录被删除,而且我并不总是将PeriodID增加1.

解决方法

;WITH CTE AS 
( 
SELECT TOP 1 * 
FROM @ResultTable
ORDER BY PeriodID DESC
) 
UPDATE CTE SET PeriodLastDate=DATEADD(DAY,PeriodLastDate)

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...