存储过程——数据的分页

SQL分页存储过程实现

这个存储过程用来数据的分页,里面构造的一个函数实现这个功能;

if  object_id('fenye','p') is not null  

 /*判断是否存在fenye这个存储过程*/   

 drop  proc fenye GO CREATE PROCEDURE [dbo].[fenye] @currentpage  int=1, 

/*记录当前的页数,初始值为1*/

@count  int=10,     

  /*每一个页面所显示的数据量*/

@tablename varchar(20), 

/*所查询的表的名字*/

 @colunm  varchar(20)   

  /*表中查询的字段*/

 AS declare   @sql  nvarchar(1000) 

  /*定义查询字段变量*/

set  @sql=N'select  top '+ cast(@count as nvarchar(3))

 /*将字符串变量转换成字符型*/

 SET  @sql=@sql+N'  *  from '+@tablename+' where '+@colunm+' not in (' set  @sql=@sql+N' select top '+cast(((@currentpage-1)*@count) as  nvarchar(3)) set  @sql=@sql+@colunm+N' from '+@tablename+')' SELECT @sql  

 /*显示出插叙语句*/

 exec  (@sql) Go

exec fenye 1,3,'dbo.Article_Comment','ArticleID' 

 /*执行查询*/

GO

/*这里面是构造查询所有数据记录的条数的函数*/

DECLARE  @TEMP  NVARCHAR(500)  DECLARE  @TABLENAME  NVARCHAR(50) DECLARE  @COUNT  INT SET  @TABLENAME=N'dbo.Article_Comment' SET  @TEMP=N' SELECT  @A=COUNT(*) FROM '+@TABLENAME EXEC  SP_EXECUTESQL @TEMP ,N'@A INT OUTPUT',@COUNT OUTPUT

/*调用的是系统中的一个函数 SP_EXECUTESQL(执行的SQL语句,输出变量的函数类型,输出变量的函数)*/

SELECT @COUNT

转载于:https://www.cnblogs.com/zhijianliutang/archive/2011/11/16/2250652.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值