[Bug] Take, Skip in MS SQL 2005
От: Holms США  
Дата: 07.03.10 04:28
Оценка:
Linq

var query =    from e in db.Customer
                        select e;

query = query.Skip(startIndex).Take(maxPageRows);

return query;


генерит такой SQL
SELECT *
FROM
(
    SELECT
        t.*,
        ROW_NUMBER() OVER
        (
            ORDER BY
                t.[CustomerID],
                t.[CustomerName],
                t.[ContactName],
                t.[DefaultClientRate],
                t.[Email],
                t.[AddressLine1],
                t.[AddressLine2],
                t.[City],
                t.[PostCode],
                t.[State1],
                t.[PhoneNo],
                t.[FaxNo],
                t.[MobileNo],
                t.[Notes]
        ) as rn
    FROM
    (
        SELECT
            [e].[CustomerID],
            [e].[CustomerName],
            [e].[ContactName],
            [e].[DefaultClientRate],
            [e].[Email],
            [e].[AddressLine1],
            [e].[AddressLine2],
            [e].[City],
            [e].[PostCode],
            [e].[State] as [State1],
            [e].[PhoneNo],
            [e].[FaxNo],
            [e].[MobileNo],
            [e].[Notes]
        FROM
            [Customers] [e]
    ) t
) t1
WHERE
    t1.rn BETWEEN 1 AND 5


который выдает такое исключение
Msg 306, Level 16, State 2, Line 22
The text, ntext, and image data types cannot be compared or sorted, except when using IS NULL or LIKE operator.


если поле [e].[Notes] убрать из ORDER BY запроса то всё нормально. Не ясно почему нельзя только первичный ключ использовать в Order by?

Спасибо
... << RSDN@Home 1.2.0 alpha 4 rev. 1465>>
The life is relative and reversible.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.