如何在一个查询中选择和更新?

e-i*_*128 6 sql sql-server sql-server-2005

我需要返回一行:

.NET[tableReturn] = select top(1) * from [table] where x = 0 order by desc
Run Code Online (Sandbox Code Playgroud)

但同时我需要更新它:

update [table] set x = 1 where [id] = .NET[tableReturn].[id]
Run Code Online (Sandbox Code Playgroud)

并需要此行的所有数据

有可能在同一个查询中?

e-i*_*128 9

解决这个问题!

DECLARE @id int;
SET @id = (select top(1) id from [table] where [x] = 0 order by id desc);

select * from [table] where id = @id;
update [table] set [x] = 20 where id = @id;
Run Code Online (Sandbox Code Playgroud)

:d