Announcement

Collapse
No announcement yet.

Table Trigger Problem

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

  • Table Trigger Problem

    Hallo Leute,

    ich habe ein Problem mit Triggern in einer SQL Server 2000 Umgebung. Der Trigger wird auf eine Tabelle angewand (FOR UPDATE, INSERT). Aus mehreren Quellen wird die Tabelle mit Daten gefüllt. Wenn jetzt zur gleichen Zeit ein INSERT statement aus 2 oder mehr Quellen stattfindet und der Trigger auslöst, kommt es zu Überschneidungen. Der 'inserted' Buffer scheint während der Trigger Abarbeitung überschrieben zu werden. Anscheinend kreiert der SQL Server 2000 nicht für jedes INSERT statement eine eigene Trigger instanz. Kennt jemand abhilfe?

  • #2
    Hallo mp39,

    nicht für jedes INSERT statement eine eigene Trigger instanz
    das kann ich mir nur schwerlich vorstellen.
    Der MSSQL arbeitet alles in Transaktionen ab und sobald die abgeschlossen ist, wird der Trigger gezündet (im Falle, das in der Trans eine DML ist).

    Was aber der Fall ist, das nicht je Datensatz der Trigger gezündet wird, sondern je DML.
    D.h. wenn Du per INSERT INTO ... SELECT 100 Datensätze einfügst, wir der Trigger im Anschluß einmal gezündet und die inserted-Tabelle enthält dann die 100 DS.
    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
      Hallo Olaf,
      ja, ist ein DML Trigger. Das heist, wenn gleichzeitig Daten aus mehreren Quellen per INSERT INTO eingefügt werden, laufen Sie zuerst in die INSERTED Tabelle und der TRIGGER wird nur einmal ausgelöst. OK, habe den Punkt verstanden. Danke Dir, Du hast mir sehr geholfen. Dann werde ich jetzt mal die Lösung ausarbeiten.

      Mario

      Comment

      Working...
      X