Announcement

Collapse
No announcement yet.

Probleme mit der Verarbeitung von Triggern

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

  • Probleme mit der Verarbeitung von Triggern

    Hallo Zusammen,

    leider habe ich ein Problem bei der Verarbeitung von Triggern und hoffe
    auf etwas Hilfe!

    Erstellte Trigger für Inserts bzw.
    Updates reagieren leider in keiner Weise.
    Die verschiedensten Versuch bleiben
    einfach erfolglos.

    Vielleicht hat jemand eine Idee. Hilfe
    wäre einfach toll !

    Herzlichen Dank
    Lisa

  • #2
    Hallo,

    um welche Trigger-Art handelt es sich (INSTEAD OF-Trigger oder "normale" Trigger)

    Comment


    • #3
      Hallo Herr Kosch,

      vielen Dank für Ihre Nachfrage und Sorry für die späte Antwort!

      Aufgabenstellung:
      Es muss regelmäßig (alle 15 Minuten) eine Teilmenge von verschiednen Tabellen aus einer DB2-Datenbank in den SQL Server transformiert werden.

      Das transformieren in die Zieltabellen, wollte ich über Trigger realisieren, um direkt Insert-/Update-Funktionen zu nutzen.

      Die Quelldatenbank ist nicht gerade mit Performance gesegnet und dadurch gibt es Probleme selbst mit kleinsten DTS-Paketen
      (Import über Proceduren).

      Bezüglich der Trigger habe ich alles versucht,
      was der SQL Server 2000 zu bieten hat.
      Ohne Erfolg! Es werden weder Sätze eingefügt noch erfolgt ein Update.

      Vielleicht haben Sie einen Tipp !

      Vielen Dank im Voraus und Grüße

      Lis

      Comment


      • #4
        Hallo,

        das folgende Beispiel legt in der tempdb-Datenbank vom MS SQL Server eine Tabelle an, füllt diese mit Testdaten, um dann einen INSTEAD OF-Trigger für UPDATE-Zugriffe auf die Tabelle zu aktivieren. Die "echten" Daten stehen in den beiden virtuellen Tabellen <b>Inserted</b> bzw. <b>Deleted</b>, so dass der INSTEAD OF-Trigger alle direkten Schreibzugriffe auf die Tabelle abfängt und statt dessen nur die Trigger-Anweisungen ausführt:
        <pre>
        <b>USE</b> tempdb
        <b>GO</b>
        <b>CREATE</b> <b>TABLE</b> TriggerTestTbl (
        TblID <b>INTEGER</b> <b>NOT</b> <b>NULL</b> <b>IDENTITY</b> <b>PRIMARY</b> <b>KEY</b> CLUSTERED,
        Wert <b>VARCHAR</b>(10),
        Zeitpunkt DATETIME)
        <b>GO</b>
        <br>
        <b>INSERT</b> <b>INTO</b> TriggerTestTbl (Wert, Zeitpunkt) <b>VALUES</b> (<font color="#9933CC">'Test'</font>, <b>CURRENT_TIMESTAMP</b>)
        <b>GO</b>
        <br>
        <b>SELECT</b> * <b>FROM</b> TriggerTestTbl
        <b>GO</b>
        <br>
        <b>CREATE</b> <b>TRIGGER</b> trTriggerTestTblUpd <b>ON</b> TriggerTestTbl <b>INSTEAD OF</b> <b>UPDATE</b>
        <b>AS</b>
        <b>BEGIN</b>
        -- Fall 1
        <b>IF</b> (<b>SELECT</b> <b>COUNT</b>(*) <b>FROM</b> Inserted <b>WHERE</b> Wert = <font color="#9933CC">''</font>) &gt; 0
        <b>BEGIN</b>
        <b>UPDATE</b> TriggerTestTbl
        <b>SET</b> Wert = <b>NULL</b>, Zeitpunkt = <b>CURRENT_TIMESTAMP</b>
        <b>FROM</b> TriggerTestTbl <b>AS</b> t <b>JOIN</b> Inserted <b>AS</b> i <b>ON</b> i.TblID = t.TblID
        <b>END</b>
        -- Fall 2
        <b>IF</b> (<b>SELECT</b> <b>COUNT</b>(*) <b>FROM</b> Inserted <b>WHERE</b> Wert &lt;&gt; <font color="#9933CC">''</font>) &gt; 0
        <b>BEGIN</b>
        <b>UPDATE</b> TriggerTestTbl
        <b>SET</b> Wert = i.Wert, Zeitpunkt = <b>CURRENT_TIMESTAMP</b>
        <b>FROM</b> TriggerTestTbl <b>AS</b> t <b>JOIN</b> Inserted <b>AS</b> i <b>ON</b> i.TblID = t.TblID
        <b>END</b>
        <b>END</b>
        <b>GO</b>
        <br>
        <b>UPDATE</b> TriggerTestTbl <b>SET</b> Wert = <font color="#9933CC">''</font>
        <b>GO</b>
        <br>
        <b>SELECT</b> * <b>FROM</b> TriggerTestTbl <b>WHERE</b> Wert <b>IS</b> <b>NULL</b>
        <b>GO</b>
        </pre&gt

        Comment

        Working...
        X