196

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'))
4

2 に答える 2

286

テーブルにエイリアスを付けるには、次のように言う必要があります。

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

DELETE特に(少なくともIIRC)これは厳密なANSIに準拠していないため、この特定のステートメントのエイリアシングのポイントがわかりません。しかし、はい、コメントが示唆するように、他のクエリ形式(相関など)に必要な場合があります。

于 2012-06-12T21:36:43.670 に答える
89

delete ステートメントの構文が変です。こんなふうになります:

DELETE f FROM foods f WHERE (f.name IN ('chickens', 'rabbits'))
于 2012-06-12T21:37:06.950 に答える