Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server Sql server-处理新数据?_Sql Server_Sql Server 2008 R2 - Fatal编程技术网

Sql server Sql server-处理新数据?

Sql server Sql server-处理新数据?,sql-server,sql-server-2008-r2,Sql Server,Sql Server 2008 R2,摇滚乐队目前有100首歌曲: select count(songName) from bands where name='Beatles' 结果:100 我每次通过分页在我的应用程序中显示这些歌曲-10个结果 如何获取相关页面及其行 像这样:SP declare @pageItems int=10 declare @pagenum int=1 select * from ( SELECT [id] , row_number() over ( order by songName) a

摇滚乐队目前有100首歌曲:

select count(songName) from bands where name='Beatles'
结果:100

我每次通过分页在我的应用程序中显示这些歌曲-10个结果

如何获取相关页面及其行

像这样:SP

declare @pageItems int=10
declare @pagenum int=1

select * from (
    SELECT  [id] , row_number() over ( order by songName) as n
    FROM Bands where name='Beatles'
) a 

where a.n > (@pagenum-1)*@pageItems  and a.n<=  (@pagenum)*@pageItems
但有一个问题

假设一个用户在第3页

披头士乐队发表了一首新歌,名为:aaa

因此,现在会出现不匹配,因为有一个新行插入到顶部,并将所有行推到下面

我不想把所有的行都放到我的应用程序中

正确的方式/功能是什么?要获得第一个标准结果


我可以使用临时表,但它仅适用于当前连接。每次用户在分页时按“下一步”,这是一个新会话。

这是分页中的一个常见问题,无论是否调整以适应移动的数据。通常,您的用户不会注意到或在意分页过程中记录总数的变化,或者如果由于添加了新记录,第2页底部的记录突然变为第3页顶部的记录。但是,如果你真的需要一致性,那么如果数据集足够小,你可以将整个PK列表缓存在临时表或你的应用程序内存中,然后在抓取时加入其中


->

你说“会出现不匹配”是什么意思?