Ceci supprime le document de la table Document
et génère des informations sur le document supprimé dans le tableau FinishedDocument
.SUPPRIMER à partir de deux tables avec une clause OUTPUT?
DELETE
FROM Document
OUTPUT Deleted.DocumentId
, Deleted.DocumentDescription
INTO FinishedDocument
WHERE DocumentId = @DocumentId
J'ai besoin de supprimer le document non seulement de la table Document
, mais aussi de la table DocumentBackup
. En attendant, je dois maintenir l'insertion dans FinishedDocument
.
Est-ce que tout cela est possible avec une seule instruction? Si non, est une seconde DELETE
(contre DocumentBackup
), avec tout cela enveloppé dans une transaction, le chemin à parcourir?
Comment une personne peut-elle voir cela comme préférable à deux suppressions (d'abord contre 'BackupDocument', puis contre' Document', avec la clause OUTPUT à 'FinishedDocument') dans une transaction? – lance
@lance, je ne suis pas sûr de ce que vous demandez? Dans tous les cas, vous devrez avoir 2 DELETE, avec l'INSERT provenant d'une clause OUTPUT. Si vous supprimez une table avant l'autre, ce serait une préférence basée sur l'activité de votre application. Je supprimerais d'abord la table la moins active, donc s'il y a des verrous ils ont moins d'impact. –