Visual Studio 2010のSQL Server Compact Edition(おそらく、SQL ServerとSQL全般、私は知りません)では、このコマンドは機能します:
DELETE FROM foods WHERE (name IN ('chickens', 'rabbits'))
しかし、このコマンドは次のエラーを生成します: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 (...);
特に(少なくともIIRC)これが厳密なANSIに準拠していないため、この特定のDELETE
ステートメントのエイリアシングのポイントがわかりません。しかし、はい、コメントが示唆するように、他のクエリ形式(例:相関)に必要な場合があります。
Deleteステートメントの構文は奇妙です。こんなふうになります:
DELETE f FROM foods f WHERE (f.name IN ('chickens', 'rabbits'))