如何从 SQL Server 更新最后 n 条记录

use*_*364 1 sql sql-server sql-server-2008

我有这样的查询:

我想更新表中的最后 50 条记录

所以我写了一个这样的查询

update transaction_tbl 
set dtime = '2014-04-16 14:15:47.243'
where transactid in (select  top (50)  from transaction_tbl order by transactid  desc)
Run Code Online (Sandbox Code Playgroud)

执行此操作时出现此错误

关键字“from”附近的语法不正确

我的查询有什么问题?我该如何解决这个问题?

我正在使用 SQL Server 2008。感谢任何帮助。

Jam*_*mes 5

将列名添加到子查询中:

update transaction_tbl set dtime='2014-04-16 14:15:47.243'
  where transactid in (select top (50) transactid from transaction_tbl order by transactid desc)
Run Code Online (Sandbox Code Playgroud)