作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
好的,我的 SQL Server 数据库中有一个存储评论的表。我的愿望是能够使用我的数据列表中的 [Back]、[Next]、页码和 [Last] 按钮对记录进行分页。我认为最有效的方法是使用只返回特定范围内一定数量行的存储过程。这是我想出的
@PageIndex INT,
@PageSize INT,
@postid int
AS
SET NOCOUNT ON
begin
WITH tmp AS (
SELECT comments.*, ROW_NUMBER() OVER (ORDER BY dateposted ASC) AS Row
FROM comments
WHERE (comments.postid = @postid))
SELECT tmp.*
FROM tmp
WHERE Row between
(@PageIndex - 1) * @PageSize + 1 and @PageIndex*@PageSize
end
RETURN
现在一切正常,我已经能够在我的数据列表寻呼机中实现 [Next] 和 [Back] 按钮。现在我需要所有评论的总数(不在当前页面中),以便我可以实现我的页码和寻呼机上的 [Last] 按钮。换句话说,我想在我的第一个选择语句中返回总行数,即
WITH tmp AS (
SELECT comments.*, ROW_NUMBER() OVER (ORDER BY dateposted ASC) AS Row
FROM comments
WHERE (comments.postid = @postid))
set @TotalRows = @@rowcount
@@rowcount 不起作用并引发错误。我也不能让 count.* 工作。
是否有另一种方法来获取总行数,或者我的方法注定要失败。
最佳答案
要获取页面的评论总数,需要单独查询:
SELECT TotalRows = COUNT(*)
FROM comments
WHERE comments.postid = @postid
将这些数据带回同一查询中的唯一方法是将数据存储为主存储过程上的子查询,并返回存储过程中每一行的总数。
关于sql-server-2005 - 帮助 !如何从我的 SQL Server 分页过程中获取总行数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2549219/
我是一名优秀的程序员,十分优秀!