Also ich meine, man kann das Löschen selbst im Before Delete nicht verhinden, deswegen "provoziert" man den Fehler, z.B.
Code:
Select [SpaltenNamenDenEsNICHTgibt] from mytable
und verhindert damit eben zunächst das Löschen. WEnn man dann noch geänderte Werte braucht, dann mittels AfteDelete ...