【问题标题】:Making sense of 'OFFSET/FETCH' in SSMS 2012理解 SSMS 2012 中的“OFFSET/FETCH”
【发布时间】:2012-07-01 11:48:30
【问题描述】:

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

消息 102,第 15 级,状态 1,第 5 行
“OFFSET”附近的语法不正确。
消息 153,第 15 级,状态 2,第 6 行
FETCH 语句中选项 NEXT 的使用无效。

这是我的查询:

    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

【问题讨论】:

  • 您说您今天安装了 SSMS 2012。您是否还连接到 2012 SQL 服务器?由于此语法是 2012 的新语法,因此如果您连接到 2008 (etc) 实例,它将无法正常工作。
  • 对于其他确定他们正在查询 2012 实例但仍然收到错误的人,需要 order by 子句。

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


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    您确定您已连接到 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

    【讨论】:

      猜你喜欢
      • 2012-09-02
      • 2013-08-13
      • 2016-11-27
      • 2017-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-01
      • 1970-01-01
      相关资源
      最近更新 更多