Pourquoi ne puis-je pas utiliser un alias dans une instruction DELETE?

Dans SQL Server Compact Edition dans Visual Studio 2010 (peut-être SQL Server et SQL en général, je ne sais pas), cette command fonctionne:

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

mais cette command produit une erreur de: Error near identifier f. Expecting OUTPUT. Error near identifier f. Expecting OUTPUT.

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

Pour alias la table, vous devez dire:

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

Je n'arrive pas à voir le point d'aliasing pour cette instruction DELETE spécifique, d'autant plus que (au less IIRC) ce n'est plus conforme à ANSI ssortingcte. Mais oui, comme le suggèrent les commentaires, il peut être nécessaire pour d'autres forms de requête (par exemple, la corrélation).

L'instruction delete a une syntaxe étrange. Ça va comme ça:

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