我爱Aspx >> C#.Net >> sql2000下 分页存储过程_数据库技巧
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
--名称:分页存储过程
--使用示例 EXEC sp_PageIndex '*',' FROM StuSources ',2,10
--注意
--目前还没有对输入的参数进行严格的验证
--默认为输入都是合法有效的
ALTER PROC sp_PageIndex
@sqlSelect varchar(800) --SELECT 后面 FROM 前面 的 字段 不用包含SELECT
,@sqlFrom varchar(800) --FROM 后面 的 字段 包含FROM
,@countPerPage int -- 每页数据行数
,@toPage int --要转到的页码
AS
BEGIN
-- 根据每页数据行数 和 要转到的页码 得到 数据起止点
Declare @start int
Declare @end int
set @end = @countPerPage * @toPage
set @start = @countPerPage * (@toPage - 1) + 1
-- 临时表名称 可随机命名
Declare @tmpTable varchar(10)
SET @tmpTable ='#tmp'
Declare @sqlStr varchar(800)
-- 创建数据源到临时表
SELECT @sqlStr = 'SELECT Identity(int,1,1) AS RowIndex,'
SELECT @sqlStr = @sqlStr + rtrim(@sqlSelect) + ' INTO '+ @tmpTable
SELECT @sqlStr = @sqlStr + rtrim(@sqlFrom)
-- 查询临时表 得到所需要的数据
SELECT @sqlStr = @sqlStr + ' '+'SELECT '+ rtrim(@sqlSelect) +' FROM ' + @tmpTable
SELECT @sqlStr = @sqlStr + ' WHERE RowIndex BETWEEN ' + Convert(char,@start) + " AND " + Convert(char,@end)
-- 删除临时表
SELECT @sqlStr = @sqlStr + ' '+'DROP TABLE '+@tmpTable
EXEC (@sqlStr)
END
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
http://www.cnblogs.com/freeliver54/archive/2006/12/31/608858.html
Ҷƪл˵?
SQL IF..ELSE..在存储过程的使用..[04-28]
SQL Server 2005 - 如何实作CLR存..[04-28]
将以前写的SQL2分查找法通用分页..[04-28]
分页存储过程_数据库技巧[04-28]
SQL server 2000存储过程 _数据库..[04-28]
数字金额大小写转换之存储过程 _..[04-28]
基于SQL SERVER的分页存储过程_数..[04-28]
MS SQL数据库备份和恢复存储过程..[04-28]
MS SQL Server 2005 开发之分页存..[04-28]
SQLServer分页查询通用存储过程_..[04-28]
SQL IF..ELSE..在存储过程的使用..[04-28]
SQL Server 2005 - 如何实作CLR存..[04-28]
将以前写的SQL2分查找法通用分页..[04-28]
分页存储过程_数据库技巧[04-28]
SQL server 2000存储过程 _数据库..[04-28]
数字金额大小写转换之存储过程 _..[04-28]
基于SQL SERVER的分页存储过程_数..[04-28]
MS SQL数据库备份和恢复存储过程..[04-28]
MS SQL Server 2005 开发之分页存..[04-28]
SQLServer分页查询通用存储过程_..[04-28]