Announcement

Collapse
No announcement yet.

Probleme mit Update-Trigger

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Probleme mit Update-Trigger

    Hallo,

    ich möchte in einer Tabelle Datum und Uhrzeit einer Änderung speichern, sobald sich ein Wert eines Datensatzes ändert. Dazu benutze ich den folgenden Trigger:

    <PRE>
    CREATE TRIGGER UP_AUFTRAG ON dbo.AUFTRAG
    FOR UPDATE

    AS

    update Auftrag set L_AENDERUNG = getdate()

    FROM

    AUFTRAG INNER JOIN updated ON AUFTRAG.AUF_ID=updated.AUF_ID
    </PRE>

    Die Syntaxprüfung verläuft erfolgreich, doch bei Änderung eines Satzes kommt es zu der folgenden Fehlermeldung: "[MICROSOFT][ODBC SQL Server Driver][SQL SERVER] Ungültiger Objektname 'updated'."

    Das Ganze passiert, wenn ich das über den Enterprise Manager teste (die notwendigen Berechtigungen habe ich).

    Wir benutzen noch den MS SQL Server 7.0.

    Was mache ich falsch?

    Grüße Uli

  • #2
    Hallo,

    habe das Problem schon selbst lösen können...

    Irgendwoher hatte ich das mit dem "updated". Wenn man das durch "inserted" ersetzt, dann funktionierts, ein Update geschieht also im Grunde durch eine Abfolge einer delete- und einer anschließenden insert-Anweisung...

    Grüße Ul

    Comment


    • #3
      Ja genau, darum heisst die zweite temporäre Tabelle auch 'deleted' und nicht 'updated'. Wenn man also den alten Wert braucht macht man ein "select irgendwas from deleted", wenn man hingegene den neuen Wert braucht, dann mit "select irgendwas from inserted".<br>Man kann damit in einem für update/insert/delete-gemeindasmen Trigger sogar herausfinden was gerade passiert. Und zwar kann man zB. bei einem erfolgreichen "if not exists (select * from deleted)" davon ausgehen, dass gerade ein Insert passiert.

      Tschüß, Helmu

      Comment

      Working...
      X