SQL 可搜索 可排序 可分页存储过程 适用于sql 2008以上

-- =============================================
-- Author:        蜘蛛王
-- Create date: 2015-10-29
-- Description:    可搜索 可排序 可分页存储过程 适用于sql2008以上
--       (非常重要,请认真使用)
-- =============================================

create PROCEDURE dbo.list
    (
        @table varchar(1000),--表名或视图表        (必须)
        @orderby varchar(1000),--排序字段          (必须)
        @fields varchar(max)=‘*‘,--欲选择字段列表  (可选)
        @pageindex int=1,--页号,从1开始               (可选)
        @pagesize int=20,--页尺寸                   (可选)
        @where nvarchar(max) = N‘‘,--条件           (可选)
        @IsCount bit = 1 -- 返回记录总数, 非 0 值则返回 (可选)
    )
AS
BEGIN
    SET NOCOUNT ON
    declare @sqlstr nvarchar(max)
    set @sqlstr=‘‘
    set @orderby = ‘ order by ‘ + @orderby
    if @where<>N‘‘
        set @where = ‘ Where ‘ + @where

    --对第一页可以直接用top
    if @pageindex=1
    begin
        set @sqlstr = ‘select top ‘ + CONVERT(varchar(10),@pagesize) + ‘ ‘ + @fields + ‘ from ‘ + @table + @where + @orderby
    end
    else
    begin
        set @sqlstr = ‘with temptbl as (‘
        + ‘ SELECT ROW_NUMBER() OVER (‘+ @orderby +‘) AS Row, ‘
        + @fields + ‘ from ‘ + @table + @where
        + ‘) SELECT ‘+ @fields + ‘ FROM temptbl where Row between ‘ + CONVERT(varchar(10),(@pageindex-1)*@pagesize+1) + ‘ and ‘ + CONVERT(varchar(10),(@pageindex-1)*@pagesize+@pagesize)

    end
    if @IsCount!=0
        set @sqlstr = @sqlstr + ‘;select count(1) from ‘ + @table + @where
    execute(@sqlstr)
END 
--测试代码
exec list @table=‘dl_QQ‘,@orderby=‘iid desc‘,@IsCount=1, @pageindex =2, @fields=‘iid,qq‘, @where=‘ iid <30 ‘
exec list @table=‘dl_QQ‘,@orderby=‘iid desc‘,@IsCount=1, @pageindex =1, @fields=‘iid,qq‘, @where=‘ iid <30 ‘
时间: 2024-10-05 04:25:18

SQL 可搜索 可排序 可分页存储过程 适用于sql 2008以上的相关文章

sql 可按任意字段排序的分页存储过程

最近做一个项目,其中有许多部分需要用到分页功能 并且这些需要分页的地方有一个共同的特点,那就是,分页,但并不是按ID(主键)来排序,而是要求按其他有重复值的列进行排序,比如,其中有一个页面,要列出将近1万条客户记录,要求按客户付费金额进行排序,这种情况,如果使用网上流行的通用分页存储过程是行不能的,比如,像下面的分页存储过程虽然很棒,可是,用在这里的话,就无计可施:(这个存储过程是我在CSDN上看到一位前辈高人写的) CREATE PROCEDURE GetRecordFromPage @tbl

sql server 带输入输出参数的分页存储过程(效率最高)

create procedure proc_page_withtopmax ( @pageIndex int,--页索引 @pageSize int,--每页显示数 @pageCount int output,--总页数,输出参数 @totalCount int output--总条数 ) as begin set nocount on; declare @sql nvarchar(1000) set @sql='select top 10 * from tb_testtable where (

Vue.js 实践(2):实现多条件筛选、搜索、排序及分页的表格功能

与上周的第一篇实践教程一样,在这篇文章中,我将继续从一种常见的功能--表格入手,展示Vue.js中的一些优雅特性.同时也将对filter功能与computed属性进行对比,说明各自的适用场景,也为vue2.0版本中即将删除的部分filter功能做准备. 需求分析 还是先从需求入手,想想实现这样一个功能需要注意什么.大致流程如何.有哪些应用场景. 表格本身是一种非常常用的组件,用于展示一些复杂的数据时表现很好. 当数据比较多时,我们需要提供一些筛选条件,让用户更快列出他们关注的数据. 除了预设的一

SQL 分页存储过程 以及SQL concatenate 几种方法

1 USE [GPP] 2 GO 3 /****** Object: StoredProcedure [dbo].[P_V_USER_INFO_ROLE_SCHEME_S_PAGE_BY_APPID_ROLEID] Script Date: 14/11/2014 10:10:36 AM ******/ 4 SET ANSI_NULLS ON 5 GO 6 SET QUOTED_IDENTIFIER ON 7 GO 8 ALTER PROC [dbo].[P_V_USER_INFO_ROLE_SC

在ASP.NET MVC5中实现具有服务器端过滤、排序和分页的GridView

背景 在前一篇文章<[初学者指南]在ASP.NET MVC 5中创建GridView>中,我们学习了如何在 ASP.NET MVC 中实现 GridView,类似于 ASP.NET web 表单的功能.通过前文,我们已经了解到使用 jQuery 插件的数据表可以很容易地实现具有搜索.排序和分页等重要功能的表格. 前文中需要注意的是,所有通过插件实现的特性都是客户端的,这意味着所有的数据都首先在页面载入,然后由插件来处理客户端搜索.分页和排序的数据.如果数据表不是特别大,这么做是可以的:但是,如

在ASP.NET MVC中使用Boostrap实现产品的展示、查询、排序、分页

在产品展示中,通常涉及产品的展示方式.查询.排序.分页,本篇就在ASP.NET MVC下,使用Boostrap来实现. 源码放在了GitHub: https://github.com/darrenji/ProductsSearchSortPage 先上效果图: 最上面是搜索和排序,每次点击搜索条件.排序,或者删除搜索条件都会触发异步加载. 中间部分为产品展示,提供了列表和格子这2种显示方式. 最下方为分页. 能实现的功能包括: ○ 点击某一个搜索条件,该搜索条件被选中,选中项以标签的形式显示到"

存储过程和SQL语句比较

做为SQL存储过程和.NET的新手,下面的指导还是很有用的,自己这一段刚刚接触这些东西,搜集了一些相关的东西,能使新手较容易上手,当然啦,要精通和熟练应用,还是要看更多更深的资料的,高手请不要见笑.以下内容均来自网络,只供参考学习:--------存储过程与SQL语句的恩怨情仇 程序员说:存储过程还是SQL语句,这是一个问题.江 湖现在有三个流派,一个是SQL语句流的,崇尚使用SQL语句,一派是存储过程派的,崇尚用存储过程说话,还有一派是中庸派的,讲求和谐,所以也就前两派 吵得厉害,中庸派的看热

sql server 查询某个表被哪些存储过程调用

原文:sql server 查询某个表被哪些存储过程调用 sql server 查询某个表被哪些存储过程调用 select distinct object_name(id) from syscomments where id in (select id from sysobjects where type ='P') and text like'%TableName%' 原文地址:https://www.cnblogs.com/lonelyxmas/p/9491635.html

sql server 2000 单主键高效分页存储过程 (支持多字段排序)

sql server 2000 单主键高效分页存储过程 (支持多字段排序) Create PROC P_viewPage             /*              nzperfect [no_mIss] 高效通用分页存储过程(双向检索) 2007.5.7  QQ:34813284              敬告:适用于单一主键或存在唯一值列的表或视图              ps:Sql语句为8000字节,调用时请注意传入参数及sql总长度不要超过指定范围