Database Reference
In-Depth Information
Beispiel: In der Tabelle „Sparten“ soll bei jedem Eintrag in der
Tabelle „Filme“ ein Zähler nachgeführt werden, da-
mit bei Abfragen nicht immer zuerst das Total er-
mittelt werden muss.
Sparten ( SPNr , Bezeichnung, AnzahlTitel)
Filme ( FNr , Titel, Spieldauer, SPNr)
Die Transaktion für das Einfügen eines neuen Films in die Ta-
belle „Filme“ könnte nun folgenderweise aussehen (SQL-Server
Syntax):
BEGIN TRANSACTION
INSERT INTO Filme
VALUES (3256, 'Goldfinger2', 120, 3)
IF (@@ERROR<>0) GOTO Fehler
UPDATE Sparten
SET AnzahlTitel = AnzahlTitel + 1
WHERE SPNr = 3
IF (@@ERROR<>0) GOTO Fehler
COMMIT TRANSACTION
RETURN
Fehler:
ROLLBACK TRANSACTION
GO
Falls die Inkrementierung des Zählers „AnzahlTitel“ in der Ta-
belle „Sparten“ scheitert, muss auch das Einfügen des Daten-
satzes in die Tabelle „Filme“ rückgängig gemacht werden, da
sonst die Daten widersprüchlich werden. Der Zähler würde ei-
nen falschen Wert anzeigen.
Solche Geschäftsregeln lassen sich mit Triggern umsetzen. Ein
Datenbank-Trigger ist ein Programm, welches mit einer Tabelle
verknüpft ist und durch ein bestimmtes Ereignis ausgeführt
wird.
Beispiel: Beim Beispiel mit den Filmsparten würde man einen
INSERT/DELETE-Trigger auf der Tabelle „Filme“ erstellen, der
nach dem Einfügen und Löschen von Datensätzen dafür sorgt,
Search WWH ::




Custom Search