¿Cómo escribir ACTUALIZAR SQL con alias de tabla en SQL Server 2008?

Resuelto javauser71 asked hace 13 años • 3 respuestas

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, MySQLpero 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.

javauser71 avatar Feb 13 '11 06:02 javauser71
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í.

Mark Byers avatar Feb 13 '2011 00:02 Mark Byers

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';
Ryk avatar Feb 13 '2011 23:02 Ryk