SQL 从中删除并取回字段
SQL Delete from and get field back
我想 运行 一个 SQL 查询,它在条件下从 table 中删除,而且 return 正在删除数据的一列,以便我可以在服务器上使用它做一些工作。
显然我可以将它们分成两个查询,例如:
SELECT name
FROM users
WHERE username = '...';
DELETE FROM users
WHERE username = '...';
但我想知道是否有一种方法可以使用参数或可能 PRINT
仅发送一个将删除的查询和 return 被删除项目的 name
字段.这是可能的还是我应该坚持两个查询?
您可以在 DELETE
(和 UPDATE
/ INSERT
)上使用 OUTPUT
关键字来捕获已删除的行。您将需要捕获到临时 table(或 table 变量)以对其进行处理:
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
我想 运行 一个 SQL 查询,它在条件下从 table 中删除,而且 return 正在删除数据的一列,以便我可以在服务器上使用它做一些工作。
显然我可以将它们分成两个查询,例如:
SELECT name
FROM users
WHERE username = '...';
DELETE FROM users
WHERE username = '...';
但我想知道是否有一种方法可以使用参数或可能 PRINT
仅发送一个将删除的查询和 return 被删除项目的 name
字段.这是可能的还是我应该坚持两个查询?
您可以在 DELETE
(和 UPDATE
/ INSERT
)上使用 OUTPUT
关键字来捕获已删除的行。您将需要捕获到临时 table(或 table 变量)以对其进行处理:
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