Sql 选择“获取结果”,然后选择“删除”

Sql 选择“获取结果”,然后选择“删除”,sql,sql-server,Sql,Sql Server,您好,我需要从数据库中选择单个条目,然后删除所选行,但我还需要得到选择的结果 delete from Emails where Emails.Id in (select top (1) t.Id from Emails t) 此查询返回已删除的行数,但我需要得到所选行的结果。如何解决?谢谢 在你的情况下,你可以这样做 delete top(1) from Emails output deleted.* 下面是关于第条的更多信息 我需要从数据库中选择单个条目,然后删除所选行,但我 还需要得到

您好,我需要从数据库中选择单个条目,然后删除所选行,但我还需要得到选择的结果

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

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

在你的情况下,你可以这样做

delete top(1) from Emails
output deleted.*
下面是关于第条的更多信息

我需要从数据库中选择单个条目,然后删除所选行,但我 还需要得到选择的结果

delete from Emails where Emails.Id in (select top (1) t.Id from Emails t)
您可以声明变量,在其中存储选定的单个值,然后删除记录:

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

delete from Emails where Emails.Id=@v

top 1
without order by可以返回任何行。如果有多个线程在运行它,则会出现争用条件。