Announcement

Collapse
No announcement yet.

Logging Funktion und MSSQL Trigger

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

  • Logging Funktion und MSSQL Trigger

    Hallo, da ich mich gerade mit der Implementierung einer Logging Funktionalität beschäftige hier noch einige Fragen die mir in den Sinn kamen:

    Es geht darum das ich mit einer Drittanbietersoftware arbeite, auf der ich auch verschiedene Benutzerlogins anlegen kann. Es reicht mir nicht alle Änderungen abzufassen und mitzuloggen, ich brauche auch die Benutzer(der Drittanbietersoftware) die die Änderung ausgelöst haben.
    Daher kamen mir nur Trigger als Lösungsvariante in den Sinn.

    Nun zu meinen Fragen:

    1. Ich weiss das Trigger in der Reihenfolge in der sie angelegt wurden aufgerufen werden. Was passiert wenn ein Instead-of Trigger ausgeführt wurde, werden dann auch später angelegte trigger ausgeführt?

    2. Ich habe von Tools [Log Explorer z.B.] erfahren welche das Log vom MSSQL Server etwas besser lesbar machen. Ich hatte in der Praxis noch Nichts mit solchen Programmen zutun, wie gut sind diese und könnten die vielleicht schon meinen Anspruch erfüllen?

    3. Gibt es andere Möglichkeiten schon vor den Tabellen anzusetzen, vielleicht irgendetwas das global auf der ganzen DB arbeitet und solche eine Funktion bieten könnte?

    Ich möchte noch eine Frage in dem Zusammenhang in den Raum stellen:

    Wie kann ich die Ergebnisse eines SELECT * FROM **** zu einem String konkatenieren, also ich möchte als Ergebnis sowas wie "ID;Name;Plz;Ort;Strasse" als ein String haben.


    Viele Grüße
    André
    Zuletzt editiert von Andre.Arnold; 25.03.2008, 17:34.

  • #2
    Zu 1:
    Ein Instead-Of-Trigger kommt immer als erster, wenn der dann Veränderungen macht, werden natürlich auch die After-Trigger ausgelöst. Und bei diesen lässt sich definieren, welcher als erster und welcher als letzter ausgeführt werden soll. Bei bis zu 3 After-Trigger lässt sich somit die Reihenfolge genau definieren. Hat man 4 oder mehr After-Trigger, ist die Reihenfolge der Trigger zwischen erstem und letztem undefiniert.
    Und für das Logging brauchst du keinen Instead-Of, du kannst ja im After-Trigger sowieso über inserted und deleted auf alte und neue Werte zugreifen.

    Zu 2 und 3:
    Kann ich nichts sagen, habe sowas noch nie benötigt.

    Deine Zusatzfrage:
    Das wird nicht ganz einfach: da musst du zuerst aus zB. information_schema.columns die spalten der Tabelle auslesen und damit deinen Select-String basteln, den du dann per exec() ausführst.

    bye,
    Helmut

    Comment

    Working...
    X