J'ai un très basique UPDATE SQL
-
UPDATE HOLD_TABLE Q SET Q.TITLE = 'TEST' WHERE Q.ID = 101;
Cette requête fonctionne bien dans Oracle
, Derby
, MySQL
- mais il échoue dans SQL Server 2008
avec l' erreur suivante:
"Msg 102, niveau 15, état 1, ligne 1 syntaxe incorrecte près de" Q "."
Si je supprime toutes les occurrences de l'alias, "Q" de SQL, alors cela fonctionne.
Mais je dois utiliser l'alias.
sql
sql-server
sql-server-2008
sql-update
alias
javauser71
la source
la source
Réponses:
La syntaxe d'utilisation d'un alias dans une instruction de mise à jour sur SQL Server est la suivante:
Cependant, l'alias ne devrait pas être nécessaire ici.
la source
SET Q.TITLE = 'TEST' -- SELECT *
Vous pouvez toujours adopter l' approche CTE (Common Tabular Expression).
la source
Cas particulier pour Postgres
Une liste des solutions ci-dessus ne fonctionnerait pas pour moi. Alors, voici la solution pour Postgres
Comme je suis un feu ma requête
UPDATE table Q SET Q.is_active = FALSE ,Q.is_delete = TRUE WHERE Q.name = 'XYZ';
Résultat: ERREUR: la colonne "q" de la relation "table" n'existe pas
Solution: vous n'avez pas besoin d'utiliser allis sur la valeur de données SET
la source