Vinzenz Mai: Trigger soll anderen Trigger triggern

Beitrag lesen

Hallo

Ich habe eine SQL 2000 DB. Darin u.A. enthalten sind 3 Tabellen:
Diese 3 Tabellen sind wie folgt miteinander verknüpft:

Tab1 hat Childdatensätze in Tab2

und

Tab2 hat Childdatensätze in Tab3

Tab1 besitzt einen Trigger, der, wenn in Tab1 ein Datensatz gelöscht wird, alle Childdatensätze in Tab2 löscht.
Tab2 besitzt einen Trigger, der, wenn in Tab2 ein Datensatz gelöscht wird, alle Childdatensätze in Tab3 löscht.

Warum verwendest Du nicht ON DELETE CASCADE?

<zitat src="Online-Handbuch MS SQL-Server 2005">
  DML-Trigger sind aus folgenden Gründen nützlich:

Sie können Änderungen über verknüpfte Tabellen in der Datenbank
  kaskadierend weitergeben. Diese Änderungen können jedoch mithilfe
  von kaskadierenden Einschränkungen der referenziellen Integrität
  effizienter ausgeführt werden.

[...]
</zitat>

Geht das generell nicht

Verschachtelte Trigger gehen prinzipiell schon, meines Wissens auch in MS SQL-Server 2000. Gesteuert wird dies über die Konfigurationsoption "nested triggers". Leider hab' ich im Moment keinen Zugriff auf die 2000er-Doku.

oder gibts da einen Trick? Oder wie oder was?

s.o.

Freundliche Grüße

Vinzenz