Trigger, der tatsächlich alles löscht

image_pdfimage_print

Wenn man in T-SQL einen Trigger auf eine Tabelle legt und diese soll nach einem Löschvorgang ebenfalls etwas anderes machen, dann stoßt man auf das folgende Problem. Solange man nur eine Zeile löscht, ist alles in Ordnung, sobald man aber mehrere Datensätze löscht, kann es passieren, dass nur der erste Trigger greift. Der Grund ist, wie man auf die deleted Tabelle zugreift.

Nutzt man SELECT TOP 1 FROM deleted, so bekommt man auch nur die erste ID. Löscht man mehrere Datensätze, befinden sich aber mehrere IDs in der deleted Tabelle.

Die Lösung ist, dass man Cursor an dieser Stelle verwendet, die Zeile für Zeile, alle IDs bearbeiten.

 

leave your comment

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.