Erstellen Sie Trigger verhindern einfügen

8

Ich versuche den folgenden Trigger auszuführen:

%Vor%

Ich versuche einen Trigger zu erstellen, der nur einen Schüler einfügt, wenn der Kredit & lt; oder == bis '30'. Die "Credits" sind ein Typ int.

Ich erhalte zahlreiche Fehler beim Versuch, diesen Trigger zu implementieren. Ich habe wirklich alles versucht und ich habe keine Optionen. Könnte jemand, der Experte auf diesem Gebiet ist, mich in die richtige Richtung weisen?

    
Fredrick 23.11.2010, 11:51
quelle

1 Antwort

12

Das Beispiel "Verwenden eines DML AFTER-Triggers zum Erzwingen einer Geschäftsregel zwischen den PurchaseOrderHeader- und den Vendor-Tabellen" in der CREATE TRIGGER Die MSDN-Dokumentation bietet genau das, was Sie suchen:

%Vor%

Der Schlüssel hier ist ROLLBACK TRANSACTION , passen Sie das Beispiel einfach an Ihre Bedürfnisse an und Sie sind fertig.

Bearbeiten: Dies sollte erreichen, was Sie suchen, aber ich habe es nicht getestet, so dass Ihre Laufleistung variieren kann.

%Vor%

Eine weitere Bearbeitung, basierend auf einigen Annahmen (bitte beachte, dass ich dieses Skript im laufenden Betrieb geschrieben habe, da ich es momentan nicht testen kann):

%Vor%

Auf diese Weise prüft der Constraint beim Einfügen von Datensätzen in die Tabelle dbo.results , ob der Student den Kurs bestanden hat, und bricht gegebenenfalls das Einfügen ab. Es ist jedoch besser, diese Dinge in der Anwendungsebene zu überprüfen.

    
Albireo 23.11.2010 11:59
quelle

Tags und Links