Осмисляне на „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 днес. Свързвате ли се и към 2012 SQL сървър? Тъй като този синтаксис е нов за 2012, ако се свържете с екземпляр от 2008 (и т.н.), той няма да работи.   -  person Jon Egerton    schedule 30.06.2012
comment
За други, които са сигурни, че заявяват екземпляр от 2012 г. и все още получават грешката, клаузата за реда по е необходима.   -  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 Fiddle

Получавам грешката, която виждате, когато премина към 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