整个 w=10=sh 除

TSQL Select Delete

只是好奇...TSQL 中是否有一个命令会删除我刚刚从 table 中选择的行?

在伪 SQL 中,类似于

SELECT * FROM TableA THEN DELETE

SELECT * FROM TableA WITH (DELETEROWS)

注意:我不只是想删除行,我想 return 临时 table 的行,然后 然后 删除它们,在同一条语句中

您可以使用 output clause:

获取刚刚 删除的行
DELETE FROM TableA
OUTPUT deleted.* --TODO name columns, identify table to insert into, etc

所以,整体应该是一样的,只是操作的顺序颠倒了。

您可以在 DELETE 中使用 OUTPUT 语句。这将允许您捕获已删除行的所有详细信息。

如果先执行 SELECT,则需要将这些行捕获到 table,然后删除 table.

中的行

如果您重复 SELECT 的逻辑,您 可能会 运行 出现问题,因为新行可能 inserted/modified/deleted 介于SELECTDELETE,所以两者可能不一致。

DELETE FROM Table1
WHERE Day = '201507015'

这将删除 table 中名称为 Table 1 的所有记录,第 1 列,该列中的记录是今天 - 20150715 (yyyymmdd)。