Tengo un muy básico UPDATE SQL
-
UPDATE HOLD_TABLE Q SET Q.TITLE = 'TEST' WHERE Q.ID = 101;
Esta consulta se ejecuta bien en Oracle
, Derby
, MySQL
- pero no en el servidor SQL 2008
con el siguiente error:
"Mensaje 102, Nivel 15, Estado 1, Línea 1 Sintaxis incorrecta cerca de 'Q'".
Si elimino todas las apariciones del alias, "Q" de SQL, entonces funciona.
Pero necesito usar el alias.
sql
sql-server
sql-server-2008
sql-update
alias
javauser71
fuente
fuente
Respuestas:
La sintaxis para usar un alias en una declaración de actualización en SQL Server es la siguiente:
Sin embargo, el alias no debería ser necesario aquí.
fuente
SET Q.TITLE = 'TEST' -- SELECT *
Siempre puede tomar el enfoque CTE , (expresión tabular común).
fuente
Caso especial para Postgres
Una lista de las soluciones anteriores no funcionaría para mí. Entonces, aquí la solución para Postgres
Como soy un fuego mi consulta
UPDATE table Q SET Q.is_active = FALSE ,Q.is_delete = TRUE WHERE Q.name = 'XYZ';
Resultado: ERROR: la columna "q" de la relación "tabla" no existe
Solución Sería que no necesita usar allis en SET data value
fuente