在SQL Server

时间:2017-01-01 09:04:16

标签: sql sql-server sql-server-2012

我需要在其他查询中删除记录并按其ID进行搜索

select * from Flat
WHERE  Flat.nu in (delete top (1) from temp output deleted.nu)

2 个答案:

答案 0 :(得分:3)

我认为你不能相互运行。

我建议您使用(临时表):tempIds(id int)。 然后像这样使用output子句:

delete top(1) from temp
output deleted.id into tempIds;

注意:最好使用CTE删除第一行。

然后查询tempIds表格,然后查看tempIds

答案 1 :(得分:1)

尝试这种方式..它可能会帮助你。

DECLARE @ID_CAPTURE TABLE (ID Int)
DELETE TOP(1) FROM TEMP
OUTPUT deleted.Nu into @ID_CAPTURE

SELECT * FROM FLAT WHERE NU IN (SELECT * FROM @ID_CAPTURE)

如果有多个记录,上面的代码段也适合您。