example - ¿Cómo escribir UPDATE SQL con alias de tabla en SQL Server 2008?
update sql server example (2)
Tengo un UPDATE SQL
muy básico -
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:
"Msg 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.
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;
El alias no debería ser necesario aquí sin embargo.
Siempre puede tomar 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'';