Я выполняю свой запрос с использованием WebMatrix, я думаю, что он правильный, однако я получаю сообщение об ошибке.
Мой запрос выглядит следующим образом:
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.ProcessResults (Int32 ч) в
System.Data.SqlServerCe.SqlCeCommand.CompileQueryPlan ()
* * 1010
Я держу запрос в файле .cs. Мне сказали, что я должен создать хранимую процедуру, так как SQL Server compact может не поддерживать функцию OVER, это правильно? Как я могу создать хранимую процедуру для этого запроса?