我正在使用WebMatrix運行我的查詢,我認爲這是正確的,但是出現錯誤。解析SQL Server Compact中的查詢時出錯
我的查詢如下:
var result = db.Query(
@"SELECT e.event_id, e.title, e.description, e.event_start, e.event_end, e.group_id, e.recurring
FROM event e
JOIN Membership m ON m.GroupID = e.group_id
WHERE e.recurring = 0
AND m.UserID = @0
AND e.event_start >= @1
AND e.event_end <= @2
UNION ALL
SELECT e.event_id, e.title, e.description, DATEADD(week, w.weeks, e.event_start), DATEADD(week, w.weeks, e.event_end), e.group_id, e.recurring
FROM event e
JOIN Membership m ON m.GroupID = e.group_id
CROSS JOIN
(SELECT row_number() OVER (ORDER BY Object_ID) AS weeks
FROM SYS.OBJECTS
) AS w
WHERE e.recurring = 1
AND m.user_id = 4;
AND e.event_start >= @4
AND e.event_end <= @5", userID, start, end, userID, start, end
);
的錯誤是:
System.Data.SqlServerCe.SqlCeException(0X80004005):有一個 錯誤解析查詢。 [令牌行號= 10,令牌行偏移= 38,令牌在錯誤= OVER]處 System.Data.SqlServerCe.SqlCeCommand.CompileQueryPlan() System.Data.SqlServerCe.SqlCeCommand.ProcessResults(的Int32小時)
我在.cs文件中持有查詢。我被告知我應該創建一個存儲過程,因爲SQL Server compact可能不支持OVER函數,這是正確的嗎?我如何爲這個查詢創建一個存儲過程?
西蒙的支持,你似乎遇到了很多情況下要熬到要在SQL Server Compact中使用SQL Server語法,並且語法不是100%兼容。您是否考慮在SQL Server 2012中使用Express或新的LocalDb?在回答之前,請觀看此演示文稿:http://channel9.msdn.com/posts/SQL11UPD03-REC-07 – 2012-03-11 16:00:13
在標籤中增加了精簡版...我假設CE根本不支持'row_number'。 – Andomar 2012-03-11 16:03:25