Значение OFFSET/FETCH в SSMS 2012

Только что установил Microsoft SQL Server Management Studio 2012 сегодня. Знакомясь с добавлением функции разбивки на страницы ORDER BY, я постоянно сталкиваюсь с этой ошибкой:

Сообщение 102, уровень 15, состояние 1, строка 5
Неверный синтаксис рядом с 'OFFSET'.
Сообщение 153, уровень 15, состояние 2, строка 6
Недопустимое использование параметра NEXT в операторе FETCH.

Вот мой запрос:

    SELECT SingleWomansName, NumberOfCats
    FROM CatLadies
    WHERE NumberOfCats > 1
    ORDER BY NumberOfCats
    OFFSET 10 ROWS
    FETCH NEXT 5 ROWS ONLY

Я видел много статей с практическими рекомендациями с похожим синтаксисом. Что дает?

http://msdn.microsoft.com/en-us/library/gg699618.aspx


person Jonny Lawrence    schedule 30.06.2012    source источник
comment
Вы сказали, что сегодня установили SSMS 2012. Вы также подключаетесь к SQL-серверу 2012 года? Поскольку этот синтаксис является новым для 2012 года, если вы подключаетесь к экземпляру 2008 (и т. д.), он не будет работать.   -  person Jon Egerton    schedule 30.06.2012
comment
Для других, которые уверены, что они запрашивают экземпляр 2012 года и все еще получают ошибку, требуется предложение order by.   -  person dudeNumber4    schedule 13.03.2013


Ответы (2)


Вы уверены, что подключены к базе данных SQL Server 2012? Следующие работы:

Select Name, CatCount
From CatLadies
Order By Name
Offset 2 Rows 
Fetch Next 2 Rows Only

версия скрипта SQL

Я получаю ошибку, которую вы видите, когда я переключаюсь на SQL Server 2008

SQL Fiddle с использованием SQL Server 2008

person Thomas    schedule 30.06.2012

Убедитесь, что уровень совместимости вашей базы данных установлен на SQL Server 2012 (110).

person Guang Zhao    schedule 07.05.2013