码迷,mamicode.com
首页 > 数据库 > 详细

Sql 2012 OFFSET / FETCH NEXT BUG

时间:2015-09-14 16:44:11      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:

上个星期,测试发现了一个分页的bug--- 无论怎么分页数据的一样。我们所有的分页都是用EF 分页,为什么只有一个模块的分页有问题呢?

后来跟了下sql语句,发现用到是sql2012的新分页方式 OFFSET/FETCH NEXT。 

下面有两段sql语句 ,

DECLARE   @FetchRows tinyint = 8;
SELECT * FROM BnC_Store ORDER BY Created_Date ASC     OFFSET 0 ROWS     FETCH NEXT @FetchRows ROWS ONLY;
SELECT * FROM BnC_Store ORDER BY Created_Date ASC     OFFSET 8 ROWS     FETCH NEXT @FetchRows ROWS ONLY;
SELECT * FROM BnC_Store ORDER BY Created_Date ASC     OFFSET 16 ROWS    FETCH NEXT @FetchRows ROWS ONLY;

  

select * from BnC_Store order by Created_Date asc OFFSET 0 ROWS FETCH NEXT 8 ROWS ONLY;
select * from BnC_Store order by Created_Date asc OFFSET 8 ROWS FETCH NEXT 8 ROWS ONLY;
select * from BnC_Store order by Created_Date asc OFFSET 16 ROWS FETCH NEXT 8 ROWS ONLY;

  

如果数据中Create_Date 的值都一样,可以发现得出的结果是不一样。  

如果我们换成 order by ID ,两边的结果是一致的。

 

所有我个人认为这算是微软 sql2012 的bug

Sql 2012 OFFSET / FETCH NEXT BUG

标签:

原文地址:http://www.cnblogs.com/qionghua/p/4807537.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!