婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 針對SQL 2000 的分頁存儲過程代碼分享

針對SQL 2000 的分頁存儲過程代碼分享

熱門標簽:銀川高頻外呼回撥系統多少錢 陜西電銷外呼系統好用嗎 沒聽見電話機器人幫你接 蘭州語音外呼系統運營商 數字匠心電銷機器人 如何做地圖標注圖鋪 最新人工智能電銷機器人 成都電話外呼系統一般多少錢 al智能電話機器人
復制代碼 代碼如下:

----------------------------------------------------
--針對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_Order=N'ORDER BY '+LTRIM(@Field_Order)

IF ISNULL(@otherwhere,N' ')=N' '
SET @otherwhere=N' '
ELSE
SET @otherwhere=N' WHERE ('+@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 server 2005 萬能分頁存儲過程的詳解
  • 基于Sql Server通用分頁存儲過程的解決方法
  • SQL Server 2005通用分頁存儲過程及多表聯接應用
  • 分頁存儲過程(三)在sqlserver中打造更加準確的分頁結果
  • 分頁存儲過程(二)在sqlserver中返回更加準確的分頁結果
  • sqlserver 千萬數量級分頁存儲過程代碼
  • 2分法分頁存儲過程腳本實例

標簽:遼源 本溪 鹽城 邢臺 朔州 巴彥淖爾 宜春 通化

巨人網絡通訊聲明:本文標題《針對SQL 2000 的分頁存儲過程代碼分享》,本文關鍵詞  針對,SQL,2000,的,分頁,存儲,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《針對SQL 2000 的分頁存儲過程代碼分享》相關的同類信息!
  • 本頁收集關于針對SQL 2000 的分頁存儲過程代碼分享的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 土默特右旗| 双流县| 玛纳斯县| 和硕县| 栖霞市| 三门峡市| 蒙阴县| 陆川县| 西青区| 琼中| 南阳市| 岗巴县| 周至县| 贵南县| 五峰| 城固县| 绥宁县| 酒泉市| 井陉县| 南充市| 宽甸| 独山县| 永康市| 长宁县| 文安县| 襄樊市| 罗甸县| 南溪县| 沭阳县| 化德县| 辽阳市| 江山市| 出国| 乡宁县| 开原市| 二手房| 开化县| 雅江县| 黄浦区| 乐昌市| 东乡族自治县|