Heim >Datenbank >MySQL-Tutorial >Wie vermeiden Sie Fehler 334, wenn Sie Aktualisierung mit Ausgabe und Auslöser auf SQL Server verwenden?
Fehlerbehebung bei SQL Server -Fehler 334: Aktualisieren, Ausgabe und Auslöser
Wenn Sie mit SQL Server arbeiten, können Sie eine UPDATE
-Klausel sowie aktivierte Auslöser in der Zieltabelle ausführen. Dies kann zu Fehler 334 erfolgen. Dieser Konflikt entsteht, da Trigger die Tabellendatenpost- OUTPUT
verändern können, wodurch Unstimmigkeiten erstellt werden Zwischen den zurückgegebenen Daten der UPDATE
-Klausel und dem tatsächlichen Zustand der Tabelle. OUTPUT
-Anklausel aus Ihrer OUTPUT
-Anweisung. Rufen Sie stattdessen die erforderlichen Daten mithilfe einer separaten UPDATE
-Antage nach dem SELECT
-Antury ab. Betrachten Sie dieses Beispiel: UPDATE
<code class="language-sql">SELECT BatchFileXml, ResponseFileXml, ProcessedDate FROM BatchReports WHERE BatchReports.BatchReportGUID = @someGuid; UPDATE BatchReports SET IsProcessed = 1 WHERE BatchReports.BatchReportGUID = @someGuid;</code>Dieser überarbeitete Ansatz ruft zuerst Daten über
ab und garantiert auch mit gleichzeitigen Auslöser -Modifikationen genaues Datenabruf. Die SELECT
-Antage fährt dann ohne die UPDATE
-Klausel fort und löst den Fehler auf. OUTPUT
-Klauseln mit Triggern problematisch sein kann. Die Daten aus der OUTPUT
-Klausel spiegeln möglicherweise nicht den endgültigen Zustand der Tabelle aufgrund nachfolgender Triggeraktionen wider. Daher ist es Best Practice, die Verwendung der OUTPUT
-Klausel zu vermeiden, wenn Trigger in der Zieltabelle aktiv sind. OUTPUT
Das obige ist der detaillierte Inhalt vonWie vermeiden Sie Fehler 334, wenn Sie Aktualisierung mit Ausgabe und Auslöser auf SQL Server verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!