Announcement

Collapse
No announcement yet.

Trigger für Updates aller Spalten

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

  • Trigger für Updates aller Spalten

    Hallo!

    Ich finde einfach keine Lösung für meinen Fall und hoffe, dass Ihr mir helfen könnt:

    Ich habe auf jeder Tabelle einen Trigger, der im Falle eines Updates den Spaltennamen und den alten bzw. neuen Wert in eine Logging-Tabelle schreibt.

    In diesem Trigger wird jede einzelne Spalte selektiert für den Fall eines updates. Somit muss, bei einer neuen Spalte, auch der Trigger aktualisiert werden.

    Gibt es eine Möglichkeit, einen Trigger so zu schreiben, dass ich nicht jede einzelne Spalte im Trigger anführen muss, sondern soetwas in der Art wie eine Variable angebe und er gibt automatisch den Spaltennamen in dem Daten verändert wurden, aus?

    Vielen Dank!
    D

  • #2
    Hallo dollmaker,

    welche DBMS verwendest Du den, den gerade was Trigger betrifft, gibt es größere Unterschiede.
    Olaf Helper

    <Blog> <Xing>
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich

    Comment


    • #3
      Ich verwende SQL 2005

      Comment


      • #4
        Hier ein Beispiel eines solchen Trigger:


        IF UPDATE(CID)
        INSERT INTO Logging (PrimaryKey, Tablename, Fieldname, OldValue, NewValue, Username, ModifiedAt)
        SELECT deleted.TID, 'T', 'ID', deleted.CID, inserted.CID, SYSTEM_USER, getdate()
        FROM deleted, inserted WHERE deleted.TID = inserted.TID

        Und das gibt es für jede Spalte im Trigger.

        Comment


        • #5
          Bin gerade mal auf die Idee gekommen, die Daten per FOR XML als XML aus inserted/deleted zu lesen und die Elemente bzw. deren Werte zu vergleichen und wo es ungleich ist, wird das dann protokolliert. Damit müsste man sich um die Felder keine Sorgen mehr machen. Muss aber noch reifen, da ich mit XQuery nicht so firm bin.

          bye,
          Helmut

          Comment


          • #6
            Xml

            ...ein guter Ansatz... ich überlege mir da mal was.

            Comment

            Working...
            X