最新活动:电脑PC端+手机端+微网站+自适应网页多模板选择-建站388元起价!!!
当前位置:主页 > 网站建设 > 针对SQL 2000 的分页存储过程代码分享建站知识

针对SQL 2000 的分页存储过程代码分享建站知识

时间:2023-05-22 09:05:22 阅读: 文章分类: 网站建设 作者: 网站编辑员

导读:1建站知识针对SQL 2000 的分页存储过程,有详细参数说明个业网站建设公司如何seo优化推广网站。

个业网站建设公司如何seo优化推广网站

复制代码 代码如下:

---------------------------------------------------- --针对SQL 2000 的分页存储过程 --Time:2008-9-25 ---------------------------------------------------- ALTER PROCEDURE [dbo].[uoSp_RecordPager] --要分页显示的表名,可多表连查,但不能使用别名。 --例:uo_Article LEFT JOIN uo_ArticleClass ON uo_Article.AClassID=uo_ArticleClass.ID @Table_info varchar(100), --用于定位记录的主键(惟一键)字段,可以是逗号分隔的多个字段 @field_id nvarchar(1000), --要显示的页码 @CurrentPage int=1, --每页的大小(记录数) @PageSize int=10, --以逗号分隔的要显示的字段列表,如果不指定,则为*。但多表联查时,若有同名字段,则必须显示指定要查的字段。 --例:uo_Article.*,uo_ArticleClass.ClassName @Field_info nvarchar(1000), --以逗号分隔的排序字段列表,可以指定在字段后面指定DESC/ASC 用于指定排序顺序 @Field_Order nvarchar(1000)= ' ', --查询条件 @otherwhere nvarchar(1000)= ' ', @RecordCount int OUTPUT, --总行数 @PageCount int OUTPUT, --总页数 @SQLSTR nvarchar(2000) output AS SET NOCOUNT ON --分页字段检查 IF ISNULL(@field_id,N' ')= ' ' BEGIN RAISERROR(N'分页处理需要主键(或者惟一键) ',1,16) RETURN END --其他参数检查及规范 IF ISNULL(@PageSize,0) <1 SET @PageSize=10 IF ISNULL(@Field_info,N' ')=N' ' SET @Field_info=N'* ' IF ISNULL(@Field_Order,N' ')=N' ' SET @Field_Order=N' ' ELSE SET @Field_Orderseo网站优化=N'ORDER BY '+LTRIM(@Field_Order) IF ISNULL(@otherwhere,N' ')=N' ' SET @otherwhere=N' ' ELSE SET @otherwhere=N' WHE建设网站公司RE ('+@otherwhere+N') ' --计算@RecordCount declare @sqlt nvarchar(1000) set @sqlt = 营销型网站建设'SELECT @RecordCount = COUNT(' + @Field_id + ') FROM ' + @Table_Info + @otherwhere exec sp_executesql @sqlt,N'@RecordCount int output',@RecordCount output --如果@PageCount为NULL值,则计算总页数(这样设计可以只在第一次计算总页数,以后调用时,把总页数传回给存储过程,避免再次计算总页数,对于不想计算总页数的处理而言,可以给@PageCount赋值) IF @PageCount IS NULL BEGIN DECLARE @sql nvarchar(4000) SET @sql=N'SELECT @PageCount=COUNT(*) ' +N' FROM '+@Table_info +N' '+@otherwhere EXEC sp_executesql @sql,N'@PageCount int OUTPUT ',@PageCount OUTPUT SET @PageCount=(@PageCount+@PageSize-1)/@PageSize END IF ISNULL(@CurrentPage,0) <1 SET @CurrentPage=1 IF @CurrentPage > @PageCount and @PageCount>0 SET @CurrentPage=@PageCount --第一页直接显示 IF @CurrentPage = 1 BEGIN SET @SQLSTR = N'SELECT TOP ' + str(@PageSize) +N' '+@Field_info +N' FROM '+@Table_info +N' '+@otherwhere +N' '+@Field_Order --PRINT @SQLSTR EXEC(@SQLSTR) END ELSE BEGIN ---------------------------------------------------- --获取第一个表的表名 DECLARE @FirstTableName varchar(20) SET @FirstTableName = @Table_info IF CHARINDEX(N',',@FirstTableName)>0 OR CHARINDEX(N'.',@FirstTableName)> 0 OR CHARINDEX(N' ',@FirstTableName)> 0 BEGIN WHILE CHARINDEX(N',',@FirstTableName)> 0 SELECT @FirstTableName=LEFT(@FirstTableName,CHARINDEX(N',',@FirstTableName)-1) WHILE CHARINDEX(N'.',@FirstTableName)> 0 SELECT @FirstTableName=LEFT(@FirstTableName,CHARINDEX(N'.',@FirstTableName)-1) WHILE CHARINDEX(N' ',@FirstTableName)> 0 SELECT @FirstTableName=LEFT(@FirstTableName,CHARINDEX(N' ',@FirstTableName)-1) END --构造SQL语句 SET @SQLSTR = N'SELECT * FROM (' + N' SELECT TOP '+STR(@PageSize*@CurrentPage) +N' '+ @Field_info + N' FROM '+@Table_info +N' '+@otherwhere +N' '+@Field_Order + N') '+@FirstTableName+N' WHERE '+@field_id+N' NOT IN (' + N' SELECT TOP '+STR(@PageSize*(@CurrentPage-1))+N' '+ @field_id + N' FROM '+@Table_info +N' '+@otherwhere +N' '+@Field_Order + N') ' + N' '+@Field_Order EXEC(@SQLSTR) ---------------------------------------------------- END

关键词标签: 分页 SQL 存储过程

声明: 本文由我的SEOUC技术文章主页发布于:2023-05-22 ,文章针对SQL 2000 的分页存储过程代码分享建站知识主要讲述分页,存储过程,SQL网站建设源码以及服务器配置搭建相关技术文章。转载请保留链接: https://www.seouc.com/article/web_4347.html

我的IDC 网站建设技术SEOUC.COM
专注网站建设,SEO优化,小程序设计制作搭建开发定制网站等,数千家网站定制开发案例,网站推广技术服务。
  • 5000+合作客服
  • 8年从业经验
  • 150+覆盖行业
  • 最新热门源码技术文章