Mehrere Zeilen aktualisieren SQL-Trigger aus SQL-Anweisung für einzelne Aktualisierung

8

Ok. Ich bin ziemlich neu bei SQL-Triggern und hatte einige Probleme mit ihnen. Insert trigger funktioniert gut und der Delete-Trigger auch. Zuerst würde das Löschen in mehreren Zeilen nur einen löschen, aber ich habe es selbst herausgefunden:)

Aber selbst nach ausführlicher Suche (hier und bei Google) finde ich keine befriedigende Antwort auf den UPDATE-Trigger, den ich habe. Wenn ich ein Update wie

mache %Vor%

Dann würde leider nur der eine Datensatz aktualisiert, und der andere würde so bleiben wie er war. Offensichtlich ist das nicht gut.

Der Auslöser, den ich verwende, ist:

%Vor%

Wie Sie sofort erkennen werden, ist dieser Auslöser großartig - wenn Sie nur einen Datensatz aktualisieren möchten. Sonst schlägt es fehl. Jetzt - die Hauptfrage wäre hier - Wie fange ich alle Datensätze, die aktualisiert werden müssen, und aktualisiere sie alle in einer Trigger-Aktion.

Die Beispiele, die ich hier auf Stack Overflow gesehen habe, verwirren mich etwas oder scheinen unwirksam zu sein - zum Beispiel scheint es, dass die meisten von ihnen damit beschäftigt sind, nur EINEN Wert in einer zweiten / anderen Tabelle zu aktualisieren, und nicht einen ganzen Haufen wie ich es versuche machen. Diejenigen, die scheinbar an mehreren Werten arbeiten, kann ich nicht verstehen: (

Nach ungefähr zwei Stunden Suche gebe ich auf und hoffe, dass Sie mir helfen können :) Ich weiß, dass dies ein Trigger-Newbie-Problem ist, und obwohl ich mein MS-SQL kenne, sind Trigger etwas, das ich nie benutzt habe , bis jetzt. Also jede Hilfe ist sehr willkommen :) W

    
Irresistance 18.05.2013, 13:52
quelle

1 Antwort

13

Es scheint, dass Sie so etwas brauchen

%Vor%

Da inserted virtuelle Tabelle mehrere Zeilen enthalten kann, müssen Sie JOIN korrekt ausführen, damit Ihre UPDATE korrekt ausgeführt wird.

    
peterm 18.05.2013, 14:12
quelle

Tags und Links