kal*_*ave 1 sql-server sql-delete
我想运行一个SQL查询,该查询在一定条件下会从表中删除,但还会返回要删除的数据的列,以便我可以在服务器上对其进行一些处理。
显然,我可以将它们分为两个查询,例如:
SELECT name
FROM users
WHERE username = '...';
Run Code Online (Sandbox Code Playgroud)
DELETE FROM users
WHERE username = '...';
Run Code Online (Sandbox Code Playgroud)
但是我想知道是否有一种使用参数的方法,或者可能PRINT
仅发送一个查询,该查询将删除并返回要删除name
的项目的字段。这是可能的还是我应该坚持两个查询?
您可以OUTPUT
在DELETE
(和UPDATE
/ INSERT
)上使用关键字来捕获已删除的行。您将需要捕获到临时表(或表变量)中以对其进行处理:
CREATE TABLE #Del
(
[name] VARCHAR (25)
)
DELETE FROM Users
OUTPUT DELETED.name
INTO #Del
WHERE UserName = 'John.Doe';
SELECT * FROM #Del -- do what you need to do here
DROP TABLE #Del
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
65 次 |
最近记录: |