3

SQL Server CE に変換する必要がある SQL Server クエリがいくつかあります。控えめに言っても、いくつかの問題に直面しています。これは私が取り組んでいるものです:

DELETE FROM exSetData 
WHERE exSetData 
INNER JOIN Exercise ON exSetData.exName = Exercise.Name 
WHERE Exercise.Day = @name; 

SQL Server CE で使用することから始めましたがAND EXISTS、必要なタスクを実行できるとは思えず、明らかに間違って使用しています。

DELETE FROM exSetData 
WHERE EXISTS (Exercise.Name = exSetData.exName AND Exercise.Day = @name)

構文エラー。

SQL Server CE でこれと同じクエリを実行するにはどうすればよいでしょうか?

調査するようにアドバイスする他のコマンドはありますか? DELETE私はマイクロソフトのドキュメントを使用してきましたが、 (私の意見では)十分ではありません。

ところで、私は SQL Server CE 4.0 を使用しています。

ありがとう

4

2 に答える 2

5

これは次を使用して機能するはずINです:

DELETE FROM exSetData
WHERE exName IN (
    SELECT Name
    FROM Exercise
    WHERE Day = @name )

SQL フィドルのデモ

CE でテストすることはできませんが、元の結合構文はオフであり、次のようになるはずです。

DELETE a
FROM exSetData a
  JOIN exercise e on a.exName = e.Name
WHERE e.Day = @name
于 2013-04-30T12:29:01.627 に答える
3

EXISTS の構文:

DELETE FROM exSetData 
WHERE EXISTS 
(
       SELECT * FROM Exercise 
       WHERE Exercise.Name = exSetData.exName 
       AND Exercise.Day = @name
)
于 2013-04-30T12:38:35.473 に答える