了解SSMS 2012中的'OFFSET / FETCH'

时间:2012-06-30 00:06:14

标签: sql sql-order-by fetch offset sql-server-2012

今天刚刚安装了Microsoft SQL Server Management Studio 2012。在熟悉添加ORDER BY的分页功能时,我一直遇到这个错误:

  

Msg 102,Level 15,State 1,Line 5
  'OFFSET'附近的语法不正确。
  Msg 153,Level 15,State 2,Line 6
  FETCH语句中NEXT选项的使用无效。

这是我的问题:

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

我见过很多具有类似语法的how-to文章。是什么赋予了?

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

2 个答案:

答案 0 :(得分:3)

您是否肯定您已连接到SQL Server 2012数据库?以下作品:

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

SQL Fiddle version

我确实收到了切换到SQL Server 2008时看到的错误

SQL Fiddle using SQL Server 2008

答案 1 :(得分:1)

确保您的数据库兼容级别设置为SQL Server 2012(110)。