我有一些SQL Server查询需要转换为SQL Server CE。至少我要面对一些麻烦。这就是我正在使用的:
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中执行相同的查询?
你有什么其他命令可以建议我研究一下吗?我一直在使用Microsoft文档,但在DELETE
(在我看来)中并没有那么彻底。
顺便说一句,我正在使用SQL Server CE 4.0。
由于
答案 0 :(得分:5)
这应该可以使用IN
:
DELETE FROM exSetData
WHERE exName IN (
SELECT Name
FROM Exercise
WHERE Day = @name )
虽然我无法在CE中测试,但我认为您的原始连接语法已关闭,应该如下所示:
DELETE a
FROM exSetData a
JOIN exercise e on a.exName = e.Name
WHERE e.Day = @name
答案 1 :(得分:2)
EXISTS的语法:
DELETE FROM exSetData
WHERE EXISTS
(
SELECT * FROM Exercise
WHERE Exercise.Name = exSetData.exName
AND Exercise.Day = @name
)