inner ejemplos sql sql-server sql-server-ce

sql - ejemplos - ¿Por qué no puedo usar un alias en una declaración DELETE?



select as sql server (2)

En SQL Server Compact Edition en Visual Studio 2010 (tal vez SQL Server y SQL en general, no lo sé), este comando funciona:

DELETE FROM foods WHERE (name IN (''chickens'', ''rabbits''))

pero este comando produce un error de: Error near identifier f. Expecting OUTPUT. Error near identifier f. Expecting OUTPUT.

DELETE FROM foods f WHERE (f.name IN (''chickens'', ''rabbits''))


La instrucción delete tiene una sintaxis extraña. Dice así:

DELETE f FROM foods f WHERE (f.name IN (''chickens'', ''rabbits''))


Para alias la tabla, deberías decir:

DELETE f FROM dbo.foods AS f WHERE f.name IN (...);

No veo el punto de aliasing para esta declaración DELETE específica, especialmente dado que (al menos IIRC) esto ya no se ajusta al estricto ANSI. Pero sí, como sugieren los comentarios, puede ser necesario para otros formularios de consulta (por ejemplo, correlación).