日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Sql Server通用分页存储过程

發布時間:2025/3/15 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Sql Server通用分页存储过程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

sql server2000分頁方式很多,效率嗎 ?當到達10萬級以上就有些吃力了,這里暫時不例出來了

sql server2005以上就有了row_number 也是一大進步,詳情如下參考

Sql Server2005通用分頁存儲過程 CREATE PROCEDURE [dbo].[Common_GetPagedList] ( @TableName nvarchar(100), --表名 @ColumnNames nvarchar(1000) = '*', --字段名集合(全部字段為*,其它逗號分隔) @OrderClause nvarchar(1000), --排序從句(不包含order by) @WhereClause nvarchar(1000) =N' 1=1 ', --條件從句(不包含where) @PageSize int = 0, --每頁記錄數(0為所有) @PageIndex int = 1, --頁索引(從1開始) @TotalRecord int output --返回總記錄數 ) ASBEGIN if (@ColumnNames is null or @ColumnNames='') set @ColumnNames=' * ' if (@WhereClause is null or @WhereClause='') set @WhereClause=' 1=1 ' if (@OrderClause is null or @OrderClause='') set @OrderClause=' Id desc '--處理開始點和結束點 Declare @StartRecord int; Declare @EndRecord int; Declare @TotalCountSql nvarchar(1200); Declare @SqlString nvarchar(4000); --統計記錄 if(@TotalRecord is null OR @TotalRecord>=0) begin SET @TotalCountSql= N'select @TotalRecord = count(*) from ' + @TableName +' where '+@WhereClause; --select @TotalCountSql EXEC sp_executesql @totalCountSql,N'@TotalRecord int out',@TotalRecord output;--返回總記錄數 endif @PageSize>0 begin if @PageIndex<1 set @PageIndex=1 set @StartRecord = (@PageIndex-1)*@PageSize + 1 set @EndRecord = @StartRecord + @PageSize - 1 set @SqlString = N'select row_number() over (order by '+ @OrderClause +') as rowId,'+@ColumnNames+' from '+ @TableName+' where '+@WhereClause; set @SqlString ='select * from (' + @SqlString + ') as t where rowId between ' + ltrim(str(@StartRecord)) + ' and ' + ltrim(str(@EndRecord)); end else begin set @SqlString='select '+@ColumnNames+' from '+ @TableName+' where '+@WhereClause +' order by '+@OrderClause end --select @SqlString Exec(@SqlString) END

轉載于:https://www.cnblogs.com/weishao/archive/2012/05/05/2484785.html

總結

以上是生活随笔為你收集整理的Sql Server通用分页存储过程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。