¿Cómo escribir ACTUALIZAR SQL con alias de tabla en SQL Server 2008?
Tengo una muy básica UPDATE SQL
-
UPDATE HOLD_TABLE Q SET Q.TITLE = 'TEST' WHERE Q.ID = 101;
Esta consulta funciona bien en Oracle
, Derby
, MySQL
pero falla en SQL Server 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.
Aceptado
La sintaxis para usar un alias en una declaración de actualización en SQL Server es la siguiente:
UPDATE Q
SET Q.TITLE = 'TEST'
FROM HOLD_TABLE Q
WHERE Q.ID = 101;
Sin embargo, el alias no debería ser necesario aquí.
Siempre puedes adoptar el enfoque CTE (expresión tabular común).
;WITH updateCTE AS
(
SELECT ID, TITLE
FROM HOLD_TABLE
WHERE ID = 101
)
UPDATE updateCTE
SET TITLE = 'TEST';