<p>在Visual Studio 2010的SQL Server Compact版本中(可能是sqlserver和SQL,我不知道),这个命令可以工作:</p>
<pre><code>DELETE FROM foods WHERE (name IN ('chickens', 'rabbits'))
</code></pre>
<p>但是这个命令产生一个错误:<code>Error near identifier f. Expecting OUTPUT.</code></p>
<pre><code>DELETE FROM foods f WHERE (f.name IN ('chickens', 'rabbits'))
</code></pre>
<p>要给表起别名,您必须说:</p>
<pre><code>DELETE f FROM dbo.foods AS f WHERE f.name IN (...);
</code></pre>
<p>我看不到这个特定的<code>DELETE</code>语句的别名点,特别是因为(至少IIRC)它不再符合严格的ANSI。但是,是的,正如评论所建议的那样,对于其他查询表单(例如相关性)可能是必要的。</p>