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