2009-08-25 5 views
0

Ich bin derzeit nicht an einem Ort, um dies auszuprobieren, aber ich würde gerne wissen, ob dies eine Option ist, damit ich die Lösung in meinem Kopf entwerfen kann.SQL Server 2005 Trigger mit Update-Anweisung einfügen

Ich möchte einen Insert-Trigger für eine Tabelle erstellen. In diesem Einfüge-Trigger möchte ich Werte aus der virtuellen Tabelle inserted abrufen und sie verwenden, um dieselbe Tabelle zu AKTUALISIEREN. Würde das funktionieren oder würden wir eine Art Endlosschleife eingeben (obwohl der Trigger nicht für Aktualisierungsbefehle ist).

Als Beispiel, wenn eine Zeile eingefügt wurde (was einen neuen Preis/Preis für einen Anbieter darstellt), möchte ich dieselbe Tabelle aktualisieren, um die alten Preise/Kosten für diesen Anbieter ablaufen zu lassen. Der Ablauf ist notwendig, um den bereits vorhandenen Datensatz zu aktualisieren, so dass eine Historie von Preisen/Kosten für Berichtszwecke aufbewahrt werden kann (ganz zu schweigen davon, dass die aktuelle Berichtsinfrastruktur dies erwartet und wir aktuelle Berichte/Daten in SQL migrieren) Server).

Danke!

Antwort

1

Wenn Sie nur einen INSERT-Trigger und keinen UPDATE-Trigger haben, dann gibt es kein Problem, aber ich nehme an, Sie möchten auch UPDATEs und vielleicht sogar DELETEs abfangen.

Die INSTEAD OF Trigger sind nicht garantiert rekursiv verhalten:

Wenn ein INSTEAD OF-Trigger definiert auf einer Tabelle eine Anweisung für die Tabelle ausführt, die normalerweise die INSTEAD OF-Trigger wieder feuern würde, den Trigger nicht rekursiv

Mit und INSTEAD OF-Trigger genannt Sie müssen beide das Original INSERT tun und das UPDATE Sie wünschen.

+0

Ich plane eigentlich nicht, einen Update-Trigger für diese Tabelle zu verwenden, angesichts der Art und Weise, auf die zugegriffen wird, und der Berechtigungen für diejenigen, die darauf zugreifen können. Ich war mir nicht bewusst, aber es ist auch eine gute Information. Vielen Dank! – thomas

0

Das klingt nicht so, als würde es mir irgendwelche Probleme verursachen, vorausgesetzt, Sie machen keinen INSERT in einem anderen UPDATE-Trigger.

+0

keine Einfügungen innerhalb eines Updates ... Danke für die Antwort. – thomas