2015-04-12 85 views
1

你好,我需要从数据库中选择单个条目,然后删除选定的行,但我也需要得到选择结果。选择获得结果然后删除

delete from Emails where Emails.Id in (select top (1) t.Id from Emails t) 

此查询返回已删除行的数量,但我需要得到所选行的结果。如何解决它?谢谢!

+0

'顶1'无秩序。 –

回答

2

在你的情况你可以做这样的事情

delete top(1) from Emails 
output deleted.* 

这里有更多有关output条款。

sql fiddle demo

+0

谢谢!它的工作原理 – user2598575

0

我需要从DB单一的入口,然后删除选中的行,但我也 需要得到选择的结果。

,你可以声明一个变量,存储在它选择的单个值,然后删除您的记录:由可以返回任何行

Declare @v int 
set @v= (select top (1) t.Id from Emails t) 

delete from Emails where [email protected] 
+0

如果有多个线程正在运行,则会出现竞态条件。 –