搜索+分页存储过程

ALTER PROCEDURE Proc_MemorialHall_SeconSide
@Keyword nvarchar(100)=‘‘,
@BeginPage int ,
@PageCount int,
@RecordCount int output
AS
BEGIN
    SET NOCOUNT ON;
    declare @BeginIndex int=((@BeginPage-1)*@PageCount)+1
    declare @EndIndex int=(@BeginPage*@PageCount)
    declare @sql nvarchar(2000)
    declare @sqlCount nvarchar(2000)
    declare @condition nvarchar(100)=‘‘

    if(LEN(@Keyword)>0)
    begin
        set @condition=‘ and mh.Title like ‘‘%‘+@Keyword+‘%‘‘‘
    end

    set @sql=‘select * from(select mh.*,ROW_NUMBER() over(order by BuildDateTime desc) rowNumber from MemorialHall mh
    inner join Member m on mh.MemberID=m.MemberID where mh.IsStop=0‘+@condition+‘) t
    where rowNumber between ‘+CONVERT(varchar(100),@BeginIndex) +‘ and ‘+CONVERT(varchar(100),@EndIndex)

    set @sqlCount=‘select @RecordCount=count(*) from MemorialHall mh
    inner join Member m on mh.MemberID=m.MemberID where mh.IsStop=0‘+@condition
    set @sql=@sqlCount+@sql
    print @sql
    exec sp_executesql @sql,N‘@RecordCount int output‘,@RecordCount output
END
时间: 2024-10-06 08:40:13

搜索+分页存储过程的相关文章

如此高效通用的分页存储过程是带有sql注入漏洞的

原文:如此高效通用的分页存储过程是带有sql注入漏洞的 在google中搜索“分页存储过程”会出来好多结果,是大家常用的分页存储过程,今天我却要说它是有漏洞的,而且漏洞无法通过修改存储过程进行补救,如果你觉得我错了,请读下去也许你会改变看法. 通常大家都会认为存储过程可以避免sql注入的漏洞,这适用于一般的存储过程,而对于通用分页存储过程是不适合的,请看下面的代码和分析! 一般的通用的分页存储过程代码如下: 通用分页存储过程CREATE PROCEDURE pagination@tblName 

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

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

千万级数据分页存储过程 asp.net页面调用分页全过程

下方有调用过程 从程序中考虑:比如用数据缓冲和连接池技术从数据库服务器端考虑:比如csdn只选出前300行纪录,因为用户不需要那么多纪录.你也不必把1000万条全部分页.你也不必把纪录放在一个表中,一年(太多就一个月)的数据放一张表或定期把历史数据导出到数据数据仓库中,不要用一张表装1000万条记录.做好索引.优化查询!尽量少用模糊查询,避免表扫描.不能让客户端连续多次搜索(csdn就是) 千万级的数据库,有分页的意义吗?对于用户来说就是信息的海洋了,去看看Google怎么做的吧,根本就不存在如

SQL基础分页存储过程(案例一)

1 --分页 存储过程 案例 2 3 -- 所执行的存储过程 4 create proc pageForUsers 5 @currPage int, --当前页数 6 @pageSize int, --每页多少条记录 7 @count int output --总记录数 8 as 9 declare @firstIndex int 10 declare @lastIndex int 11 declare @sqlText varchar(200) 12 13 --统计总记录数 14 select

多表查询分页存储过程,解决了第二页不显示的问题

SET ANSI_NULLS OFFGOSET QUOTED_IDENTIFIER OFFGO ALTER PROCEDURE [dbo].[UP_Pagination]/****************************************************************** 千万数量级分页存储过程 *****************************************************************参数说明:1.Tables :表名称,视

oracle分页存储过程

oracle分页存储过程: CREATE OR REPLACE PROCEDURE FGK.prc_page (p_tableName in varchar2, --表名 p_strWhere in varchar2, --查询条件 p_orderColumn in varchar2, --排序的列 p_orderStyle in varchar2, --排序方式 p_curPage in out Number, --当前页 p_pageSize in out Number, --每页显示记录条

sql笔记/分页存储过程

[email protected]c#中进行++操作可以是整数或小数,sql中只能对整数进行++操作.char类型 适合存储长度波动较小不回收效率高varchar 类型 适合存储长度波动较大可以回收nchar代表unicode 存储内容包括汉字时候考虑加n SQL语句特点1不区分大小写2没有双引号所有字符串都包含在单引号3没有逻辑相等,逻辑相等和赋值一样都是用=4没有bool值得概念,但是在视图中可以输入true/false5也有关系运算符.6也有逻辑运算符 &&-- and || --o

SpringMVC分页和搜索分页

分页使我们经常需要使用的功能,昨天在Spring MVC中实现了简单的分页操作和搜索分页,在此记录一下.使用的框架为(MyBatis+SpringMVC+Spring). 首先我们需要一个分页的工具类: 1.分页 import java.io.Serializable; /** * 分页 */ public class Page implements Serializable { private static final long serialVersionUID = -319804844964

sql server分页存储过程

/********************************************************************************* * Function: PagedProc                                                  * * Description: * * Sql2005分页存储过程                                              * * Finish DateT