Ich habe eine sehr grundlegende UPDATE SQL
-
UPDATE HOLD_TABLE Q SET Q.TITLE = 'TEST' WHERE Q.ID = 101;
Diese Abfrage läuft gut in Oracle
, Derby
, MySQL
- aber es nicht in SQL Server 2008
mit folgenden Fehlern:
"Nachricht 102, Ebene 15, Status 1, Zeile 1 Falsche Syntax in der Nähe von 'Q'."
Wenn ich alle Vorkommen des Alias "Q" aus SQL entferne, funktioniert es.
Aber ich muss den Alias verwenden.
sql
sql-server
sql-server-2008
sql-update
alias
javauser71
quelle
quelle
Antworten:
Die Syntax für die Verwendung eines Alias in einer Update-Anweisung unter SQL Server lautet wie folgt:
Der Alias sollte hier allerdings nicht notwendig sein.
quelle
SET Q.TITLE = 'TEST' -- SELECT *
Sie können jederzeit den CTE- Ansatz (Common Tabular Expression) verwenden.
quelle
Sonderfall für Postgres
Eine Liste der oben genannten Lösungen würde für mich nicht funktionieren. Also, hier Lösung für Postgres
Da ich ein Feuer bin meine Frage
UPDATE table Q SET Q.is_active = FALSE ,Q.is_delete = TRUE WHERE Q.name = 'XYZ';
Ergebnis: FEHLER: Spalte "q" der Beziehung "Tabelle" existiert nicht
Lösung Wäre es, dass Sie nicht allis für den SET-Datenwert verwenden müssen
quelle