Freigeben über


Erstellen von Triggern

Trigger werden im Tabellen-Designer oder mit dem CREATE TRIGGER-Befehl erstellt. Bei jeder Tabelle können Sie für jedes der drei folgenden Ereignisse einen Trigger erstellen: INSERT, UPDATE und DELETE. Eine Tabelle kann maximal 3 Trigger gleichzeitig haben. Ein Trigger muss einen der Werte Wahr (.T.) oder Falsch (.F.) zurückgeben.

So erstellen Sie einen Trigger

  • Geben Sie im Tabellen-Designer auf der Registerkarte Tabelle den Triggerausdruck oder den Namen einer gespeicherten Prozedur, die einen Triggerausdruck enthält, im Feld INSERT-Trigger, UPDATE-Trigger oder DELETE-Trigger ein.

    - Oder -

  • Verwenden Sie den CREATE TRIGGER-Befehl.

Beispielsweise möchte die Tasmanische Handelsgesellschaft bei jedem Verkauf eines Artikels den Lagerbestand im Feld Units_in_stock mit dem Mindestbestand im Feld Reorder_level vergleichen und informiert werden, wenn der betreffende Artikel nachbestellt werden muss. Zu diesem Zweck könnten Sie in der Tabelle products einen UPDATE-Trigger erstellen. Dann wird der UPDATE-Trigger bei jedem verkauften Stück dieses Artikels ausgelöst und der Wert im Feld Units_in_stock auf den neuen Lagerbestand gesetzt.

Um Ihren Trigger zu erstellen, können Sie updProductsTrigger( ) als UPDATE-Trigger für die Tabelle products festlegen. Sie können products das neue Feld reorder_amount hinzufügen, in dem die Anzahl des Artikels gespeichert ist, die Sie jedes Mal nachbestellen möchten, und eine Tabelle reorder mit den Feldern product_id und reorder_amount erstellen. Anschließend können Sie der gespeicherten Prozedur folgenden Code hinzufügen:

PROCEDURE updProductsTrigger
   IF (units_in_stock+units_on_order) <= reorder_level
   INSERT INTO Reorder VALUES(Products.product_id, ;
    Products.reorder_amount)
   ENDIF   
ENDPROC

Ähnliche Trigger können Sie für eines der Ereignisse Insert oder Delete erstellen, indem Sie statt der FOR UPDATE-Klausel die FOR INSERT-Klausel bzw. die FOR DELETE-Klausel verwenden. Wenn Sie einen Trigger zu erstellen versuchen, der für ein bestimmtes Ereignis und eine bestimmte Tabelle bereits existiert, und SET SAFETY auf ON gesetzt ist, fragt Visual FoxPro, ob Sie den vorhandenen Trigger überschreiben möchten.

Siehe auch

Verwendung von Triggern | Entfernen oder Löschen von Triggern | Arbeiten mit Tabellen | Ändern von Triggern | Ändern der Tabellenstruktur