为什么我不能在DELETE语句中使用别名?

在Visual Studio 2010中的SQL Server Compact Edition(也许一般是SQL Server和SQL,我不知道),这个命令的工作原理:

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

但是这个命令会产生一个错误: Error near identifier f. Expecting OUTPUT. Error near identifier f. Expecting OUTPUT.

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

为了别名表,你必须说:

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

我没有看到这个特定的DELETE语句的别名,特别是(至lessIIRC),这不再符合严格的ANSI。 但是,是的,正如评论所说,其他查询forms(如相关性)可能是必要的。

删除语句有奇怪的语法。 它是这样的:

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