3

我有一些需要转换为 SQL Server CE 的 SQL Server 查询。至少可以说,我面临着一些麻烦。这就是我正在使用的:

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

我开始尝试AND EXISTS在 SQL Server CE 中使用,但是我不相信它能够执行我需要的任务,而且显然我使用它不正确。

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

语法错误。

如何在 SQL Server CE 中执行相同的查询?

您还有其他命令建议我研究吗?我一直在使用 Microsoft 文档,但是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 回答