如何在SQL中使用SELECT查询获取特定行后删除该行?

如何在SQL中使用SELECT查询获取特定行后删除该行?,sql,fetch,row,sql-delete,Sql,Fetch,Row,Sql Delete,如何在SQL中使用SELECT查询获取特定行后删除该行 DELETE row1 FROM tablename WHEN fetched 假设我在SQL中使用SELECT查询获取一行。然后我需要删除那一行。 是否使用了触发器?怎么用?请编写代码。在MSSQL中,您可以在执行选择时使用CTE删除记录。下面给出了一个例子 ;WITH cte as ( select clientid , status, Insertdate from Yourtable where clien

如何在SQL中使用SELECT查询获取特定行后删除该行

DELETE row1 
FROM tablename 
WHEN fetched
假设我在SQL中使用SELECT查询获取一行。然后我需要删除那一行。
是否使用了触发器?怎么用?请编写代码。

在MSSQL中,您可以在执行选择时使用CTE删除记录。下面给出了一个例子

;WITH cte as (
  select clientid
 , status, Insertdate
      from Yourtable
 where clientid=1
 ) 
   delete from cte
也许你可以利用这个原因。像这样:

USE AdventureWorks2012;  
GO  
DELETE TOP(1) dbo.DatabaseLog WITH (READPAST)  
OUTPUT deleted.*  
WHERE DatabaseLogID = 7;  
GO  

你说的“抓取”是什么意思?您只是想知道如何删除符合特定条件的行吗?或者,您的意思是,在用SELECT查询加载一行之后,您希望能够删除同一行吗?使用触发器!!!是,在加载SELECT查询后删除行。