sql2000下分页存储过程

来源:互联网 发布:日本爱知教育大学 编辑:程序博客网 时间:2024/05/17 03:16
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>

SETQUOTED_IDENTIFIEROFF
GO
SETANSI_NULLSON
GO
--名称:分页存储过程
--使用示例EXECsp_PageIndex'*','FROMStuSources',2,10
--注意
--目前还没有对输入的参数进行严格的验证
--默认为输入都是合法有效的

ALTER PROCsp_PageIndex
 @sqlSelectvarchar(800)--SELECT后面FROM前面的字段不用包含SELECT
,@sqlFromvarchar(800)--FROM后面的字段包含FROM
,@countPerPageint--每页数据行数
,@toPageint--要转到的页码

AS

BEGIN


--根据每页数据行数和要转到的页码得到数据起止点
Declare@startint
Declare@endint

set@end=@countPerPage*@toPage
set@start=@countPerPage*(@toPage-1)+1


--临时表名称可随机命名
Declare@tmpTablevarchar(10)
SET@tmpTable='#tmp'

Declare@sqlStrvarchar(800)
--创建数据源到临时表
SELECT@sqlStr='SELECTIdentity(int,1,1)ASRowIndex,'
SELECT@sqlStr=@sqlStr+rtrim(@sqlSelect)+'INTO '+@tmpTable
SELECT@sqlStr=@sqlStr+rtrim(@sqlFrom)
--查询临时表得到所需要的数据
SELECT@sqlStr=@sqlStr+''+'SELECT'+rtrim(@sqlSelect)+'FROM'+@tmpTable
SELECT@sqlStr=@sqlStr+'WHERE RowIndexBETWEEN'+Convert(char,@start)+"AND"+Convert(char,@end)
--删除临时表
SELECT@sqlStr=@sqlStr+''+'DROPTABLE'+@tmpTable
EXEC(@sqlStr)


END


GO
SETQUOTED_IDENTIFIEROFF
GO
SETANSI_NULLSON
GO


<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
原创粉丝点击