为什么我不能在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'))