分页存储过程:关于使用存储过程创建分页来源: 发布时间:星期四, 2009年2月12日 浏览:685次 评论:0
2005-1-4 有关使用存储过程创建分页 今天查询有关sql server 索引 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 注:原作者 freedk 以下为笔者整理 这是 ![]() ![]() 建立 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 更重要 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 思路来源: 从publish 表中取出第 n 条到第 m 条 ![]() SELECT TOP m-n+1 * FROM publish WHERE (id NOT IN (SELECT TOP n-1 id FROM publish)) 存储过程: CREATE PROCEDURE pagination3 @tblName varchar(255) , -- 表名 @strGetFields varchar(1000) = \'*\', -- 需要返回 ![]() @fldName varchar(255)=\'\', -- 排序 ![]() @PageSize ![]() @PageIndex ![]() @doCount bit = 0, -- 返回记录总数, 非 0 值则返回 @OrderType bit = 0, -- 设置排序类型, 非 0 值则降序 @strWhere varchar(1500) = \'\' -- 查询条件 (注意: 不要加 where) AS declare @strSQL varchar(5000) -- 主语句 declare @strTmp varchar(110) -- 临时变量 declare @strOrder varchar(400) -- 排序类型 ![]() begin ![]() ![]() ![]() ![]() end --以上代码 ![]() ![]() ![]() ![]() ![]() ![]() ![]() begin ![]() begin ![]() ![]() --如果@OrderType不是0 ![]() ![]() end ![]() begin ![]() ![]() end ![]() begin ![]() ![]() ![]() ![]() --如果是第 ![]() ![]() end ![]() begin ![]() + @tblName + \'] where [\' + @fldName + \']\' + @strTmp + \'([\' + @fldName + \']) from (select top \' + str((@PageIndex-1)*@PageSize) + \' [\' + @fldName + \'] from [\' + @tblName + \']\' + @strOrder + \') as tblTmp)\' + @strOrder ![]() ![]() + @tblName + \'] where [\' + @fldName + \']\' + @strTmp + \'([\' + @fldName + \']) from (select top \' + str((@PageIndex-1)*@PageSize) + \' [\' + @fldName + \'] from [\' + @tblName + \'] where \' + @strWhere + \' \' + @strOrder + \') as tblTmp) and \' + @strWhere + \' \' + @strOrder end end exec (@strSQL) --pr ![]() GO 以上代码在winxp_sp2 sql server2000 personal 下调试通过 7
相关文章读者评论发表评论 |
|