Anda dapat memanfaatkan tabel pseudo "dihapus" dalam contoh ini. Sesuatu seperti:
begin transaction;
declare @deletedIds table ( id int );
delete from t1
output deleted.id into @deletedIds
from table1 as t1
inner join table2 as t2
on t2.id = t1.id
inner join table3 as t3
on t3.id = t2.id;
delete from t2
from table2 as t2
inner join @deletedIds as d
on d.id = t2.id;
delete from t3
from table3 as t3 ...
commit transaction;
Jelas Anda dapat melakukan 'output dihapus.' pada penghapusan kedua juga, jika Anda membutuhkan sesuatu untuk bergabung di tabel ketiga.
Sebagai catatan tambahan, Anda juga dapat melakukan penyisipan.* pada pernyataan penyisipan, dan keduanya disisipkan.* dan dihapus.* pada pernyataan pembaruan.
EDIT: Juga, sudahkah Anda mempertimbangkan untuk menambahkan pemicu pada tabel1 untuk dihapus dari tabel2 + 3? Anda akan berada di dalam transaksi implisit, dan juga akan memiliki "disisipkan." dan "dihapus. " pseudo-tabel tersedia.