这将从Document
表中删除文档,并将有关已删除文档的信息输出到FinishedDocument
表中。使用一个OUTPUT子句从两个表中删除?
DELETE
FROM Document
OUTPUT Deleted.DocumentId
, Deleted.DocumentDescription
INTO FinishedDocument
WHERE DocumentId = @DocumentId
我需要不只是从Document
表,但也从DocumentBackup
表中删除该文件。同时,我需要保持插入FinishedDocument
。
这一切只有一个语句可能吗?如果没有,是第二个DELETE
(针对DocumentBackup
),它的所有包裹在一个交易中,要走的路?
某人在事务中可能会如何将这看作优于两次删除(首先针对'BackupDocument',然后针对'Document',OUTPUT子句为'FinishedDocument')? – lance 2010-05-20 15:40:14
@lance,我不确定你在问什么?无论如何,你必须有2个DELETE,INSERT来自OUTPUT子句。如果先删除一个表格,那么这将是基于应用程序活动的首选项。我会先删除最不活跃的表,如果有锁,它们的影响就会减小。 – 2010-05-20 19:28:02