六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 239|回复: 0

SQL Server 使用存储过程分页

[复制链接]

升级  32%

4

主题

4

主题

4

主题

童生

Rank: 1

积分
16
 楼主| 发表于 2013-1-4 01:28:22 | 显示全部楼层 |阅读模式
<div id="cnblogs_post_body">-- 查询Company信息并分页
CREATE PROCEDURE [dbo].[Company_List]
@InfoType INT,                 -- 信息类型
@PageCode VARCHAR(50),      -- 频道ID
@Company VARCHAR(100),     -- 企业名称
@PageSize INT,                 -- 每页记录数
@PageIndex INT                -- 当前页码
AS
BEGIN
    DECLARE @SQL VARCHAR(1000)
DECLARE @StartRow INT
DECLARE @EndRow INT
    SET @StartRow = (@PageIndex-1)*@PageSize+1
    SET @EndRow = @PageIndex*@PageSize
    SET @SQL = 'WITH TEMPTABLE AS(SELECT CID,Company,Url,AltAttr,PubDate,SortIndex,PageCode,ROW_NUMBER()'
    +' OVER(ORDER BY SortIndex DESC) AS Row FROM Company WHERE InfoType='+ CAST(@InfoType AS VARCHAR)
    +' AND PageCode='''+ CAST(@PageCode AS VARCHAR) +''''
    IF(@Company != '')
    BEGIN
     SET @SQL = @SQL +' AND Company LIKE ''%'+ CAST(@Company AS VARCHAR) +'%'''
    END
    SET @SQL = @SQL
    +')SELECT *,(SELECT COUNT(1) FROM TEMPTABLE) AS PageCount FROM TEMPTABLE WHERE Row BETWEEN '
    + CAST(@StartRow AS VARCHAR) +' AND '+ CAST(@EndRow AS VARCHAR) + ' ORDER BY SortIndex DESC,PubDate DESC'
EXEC (@SQL)
END
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表