Dans SQL Server Compact Edition dans Visual Studio 2010 (peut-être SQL Server et SQL en général, je ne sais pas), cette commande fonctionne:
DELETE FROM foods WHERE (name IN ('chickens', 'rabbits'))
mais cette commande produit une erreur de: Error near identifier f. Expecting OUTPUT.
DELETE FROM foods f WHERE (f.name IN ('chickens', 'rabbits'))
Pour aliaser la table, il faudrait dire:
DELETE f FROM dbo.foods AS f WHERE f.name IN (...);
Je ne vois pas l’intérêt de créer un alias pour cette instruction spécifique DELETE
, d’autant plus que (du moins IIRC), cela n’est plus conforme à la norme ANSI stricte. Mais oui, comme le suggèrent les commentaires, cela peut être nécessaire pour d’autres formes 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'))