亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > SQL Server > 正文

MsSql 存儲過程分頁代碼 [收集多篇]

2024-08-31 00:59:38
字體:
來源:轉載
供稿:網友

復制代碼 代碼如下:


--使用說明 本代碼適用于MsSql2000,對于其它數據庫也可用.但沒必要
--創建存儲過程
CREATE PROCEDURE pagination
@tblName varchar(255), -- 表名
@strGetFields varchar(1000) = '*', -- 需要返回的列
@fldName varchar(255)='', -- 排序的字段名(可包含如TABLE.FLDNAME形式)
@PageSize int = 10, -- 頁尺寸
@PageIndex int = 1, -- 頁碼
@doCount bit = 0, -- 返回記錄總數, 非 0 值則返回
@OrderType bit = 0, -- 設置排序類型, 非 0 值則降序
@strWhere varchar(1500) = '' -- 查詢條件 (注意: 不要加 where)
AS
declare @strSQL varchar(5000) -- 主語句
declare @strTmp varchar(110) -- 臨時變量
declare @strOrder varchar(400) -- 排序類型
declare @fldName_t varchar(255) -- 在分頁時用的排序字段名,不包含多表并列時的表名
set @fldName_t = right(@fldName,len(@fldName)-CHARINDEX('.',@fldName))
if @doCount != 0
begin
if @strWhere !=''
set @strSQL = 'select count(*) as Total from ' + @tblName + ' where '+@strWhere
else
set @strSQL = 'select count(*) as Total from ' + @tblName + ''
end
--以上代碼的意思是如果@doCount傳遞過來的不是0,就執行總數統計。以下的所有代碼都是@doCount為0的情況
else
begin
if @OrderType != 0
begin
set @strTmp = '<(select min'
set @strOrder = ' order by ' + @fldName +' desc'
--如果@OrderType不是0,就執行降序,這句很重要!
end
else
begin
set @strTmp = '>(select max'
set @strOrder = ' order by ' + @fldName +' asc'
end
if @PageIndex = 1
begin
if @strWhere != ''
set @strSQL = 'select top ' + str(@PageSize) +' '+@strGetFields+ ' from ' + @tblName + ' where ' + @strWhere + ' ' + @strOrder
else
set @strSQL = 'select top ' + str(@PageSize) +' '+@strGetFields+ ' from '+ @tblName + ' '+ @strOrder
--如果是第一頁就執行以上代碼,這樣會加快執行速度
end
else
begin
--以下代碼賦予了@strSQL以真正執行的SQL代碼
set @strSQL = 'select top ' + str(@PageSize) +' '+@strGetFields+ ' from '+ @tblName + ' where ' + @fldName + ' ' + @strTmp + ' ('+ @fldName_t + ') from (select top ' + str((@PageIndex-1)*@PageSize) + ' '+ @fldName + ' from ' + @tblName + '' + @strOrder + ') as tblTmp)'+ @strOrder
if @strWhere != ''
set @strSQL = 'select top ' + str(@PageSize) +' '+@strGetFields+ ' from '+ @tblName + ' where ' + @fldName + ' ' + @strTmp + ' ('+ @fldName_t + ') from (select top ' + str((@PageIndex-1)*@PageSize) + ' '+ @fldName + ' from ' + @tblName + ' where ' + @strWhere + ' '+ @strOrder + ') as tblTmp) and ' + @strWhere + ' ' + @strOrder
end
end
exec (@strSQL)
go
--測試
create table news --建表
(
n_id int iDENTITY(1,1) primary key,
n_title char(200),
n_content text
)
--寫循環插入1000000條的數據
create proc tt
as
declare @i int
set @i=0
while(@i<1000000)
begin
insert into news(n_title,n_content) values('sb','dsfsdfsd')
set @i=@i+1
end
exec tt
exec pagination 'news','*','n_id',1000,2,0,0,''



第二篇

復制代碼 代碼如下:


自己改寫的一個分頁存儲過程
CREATE PROC Paging
(
@pageSize int,
@pageIndex int,
@pageField nvarchar(32),
@countTotal bit=1,
@fieldQuery nvarchar(512),
@tableQuery nvarchar(512),
@whereQuery nvarchar(2048),
@orderQuery nvarchar(512)
)
AS
DECLARE @bdate Datetime
SET @bdate = getdate()
DECLARE @itemcount int
SET @itemcount=@pageIndex*@pageSize
DECLARE @itemlowwer int
SET @itemlowwer=(@pageIndex-1)*@pageSize
DECLARE @cmd nvarchar(3062)

IF @pageIndex=1
SET @cmd ='SELECT TOP ‘+CAST(@pageSize AS NVARCHAR)+' ‘+@fieldQuery+' FROM ‘+@tableQuery+' WHERE ‘+@whereQuery+' ORDER BY ‘+@orderQuery
ELSE
SET @cmd='SELECT ‘+@fieldQuery+' FROM ‘+@tableQuery+' WHERE ‘+@pageField+' IN (SELECT TOP ‘+CAST(@itemcount as nvarchar)+' ‘+@pageField+' FROM ‘+@tableQuery+' WHERE ‘+@whereQuery+' ORDER BY ‘+ @orderQuery+')
AND ‘+@pageField+' NOT IN (SELECT TOP ‘ +CAST(@itemlowwer as nvarchar)+' ‘+@pageField+' FROM ‘+@tableQuery+' WHERE ‘+@whereQuery+' ORDER BY ‘+ @orderQuery+')'
–print @cmd
EXEC(@cmd)

SELECT DATEDIFF( ms , @bdate , getdate() )

IF @countTotal =1
BEGIN
SET @cmd = ‘SELECT COUNT( 0) FROM ‘+@tableQuery+' WHERE ‘+@whereQuery
EXEC(@cmd)
END
GO

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲国产精品视频在线观看| 久久影视电视剧免费网站清宫辞电视| 欧美激情亚洲国产| 久久久99久久精品女同性| 亚洲一区二区三| 亚洲欧美日韩直播| 日韩影视在线观看| 中文字幕av一区二区| 精品久久久久久久久久久| 国产免费一区二区三区在线能观看| 国内精品久久影院| 日韩视频免费在线| 午夜精品久久久久久久99热浪潮| 青青久久av北条麻妃海外网| 国产乱肥老妇国产一区二| 亚洲品质视频自拍网| 色久欧美在线视频观看| 亚洲精选中文字幕| 国产精欧美一区二区三区| 国产小视频91| 国模极品一区二区三区| 久热在线中文字幕色999舞| 精品福利在线观看| 日韩中文字幕亚洲| 欧美理论电影在线观看| 亚洲欧美综合精品久久成人| 91久久久久久久| 亚洲成人性视频| 国产精品视频大全| 欧美在线视频播放| 欧美激情按摩在线| 日本成人激情视频| 亚洲视频欧美视频| 欧美日韩国产中文字幕| 日韩精品免费看| 亚洲曰本av电影| 国产精品自产拍高潮在线观看| 中文字幕久热精品在线视频| 国产第一区电影| 欧美成人精品不卡视频在线观看| 亚洲精品女av网站| 成人精品一区二区三区电影黑人| 欧美亚洲成人网| 欧美日本啪啪无遮挡网站| 动漫精品一区二区| 亚洲成人在线视频播放| 国产精品综合不卡av| 国产精品毛片a∨一区二区三区|国| 国外色69视频在线观看| 欧美成人精品h版在线观看| 亚洲精品自拍偷拍| 亚洲激情电影中文字幕| 欧美日韩国产成人在线观看| 久久视频在线免费观看| 91精品在线看| 最新中文字幕亚洲| 国产精品三级在线| 久久久久久com| 国产亚洲视频中文字幕视频| 欧洲精品在线视频| 亚洲剧情一区二区| 欧美日韩亚洲天堂| 欧洲亚洲免费视频| 欧美成人精品在线| 欧美黄色片在线观看| 国产成人精品午夜| 久久精品视频在线观看| 久久久久久久91| 亚洲精品日韩激情在线电影| 精品国内亚洲在观看18黄| 日韩中文字幕视频在线| 2018中文字幕一区二区三区| 精品国产福利在线| 欧美日韩在线视频观看| 国产精品免费久久久久影院| 国产在线精品播放| 一区二区三区天堂av| 亚洲字幕在线观看| 亚洲电影天堂av| 亚洲欧美一区二区三区久久| 91精品在线一区| 日韩综合中文字幕| 色噜噜国产精品视频一区二区| 欧美精品久久久久久久免费观看| 日韩在线视频观看正片免费网站| 狠狠色香婷婷久久亚洲精品| 午夜精品国产精品大乳美女| 揄拍成人国产精品视频| 欧美国产日韩一区二区在线观看| 亚洲精品久久久久中文字幕欢迎你| 韩剧1988免费观看全集| 久久久精品一区二区三区| 国产成人黄色av| 欧美午夜精品在线| 久久久在线观看| 久久成年人视频| 亚洲色在线视频| 久久国产精品久久久| 亚洲人午夜精品| 伊人久久久久久久久久久| 国产精品高清在线| 亚洲人成啪啪网站| 久久精品视频99| 欧美激情视频网址| 亚洲综合色激情五月| 国产精品日韩在线| 日韩精品免费综合视频在线播放| 欧美日韩不卡合集视频| 国产v综合v亚洲欧美久久| 日韩av高清不卡| 国产精品美女久久久免费| 国内精品小视频在线观看| 欧美性资源免费| 亚洲成人激情图| 国内外成人免费激情在线视频| 色偷偷9999www| 2019国产精品自在线拍国产不卡| 九九热最新视频//这里只有精品| 亚洲精品福利在线观看| 久久乐国产精品| 亚洲嫩模很污视频| 日韩视频免费中文字幕| 亚洲自拍欧美色图| 欧美午夜精品在线| 亚洲男人天堂2023| 日韩精品视频在线免费观看| 精品国产一区二区三区久久久| 91亚洲va在线va天堂va国| 日韩欧美国产网站| 成人免费观看a| 成人国产亚洲精品a区天堂华泰| 97免费中文视频在线观看| 久久久久久亚洲精品中文字幕| 美女啪啪无遮挡免费久久网站| 亚洲色无码播放| 国产成人精品一区二区三区| 欧美性xxxx极品hd欧美风情| 在线电影中文日韩| 亚洲xxxx3d| 欧洲成人午夜免费大片| 久久99精品久久久久久青青91| 精品福利在线看| 国产精品视频播放| 日本成熟性欧美| 国产精品91久久久久久| 日韩中文有码在线视频| 国产精品日日摸夜夜添夜夜av| 久久久999成人| 久久99精品久久久久久琪琪| 亚洲国产古装精品网站| 精品毛片三在线观看| 国产精品精品视频| 亚洲999一在线观看www| 中文字幕在线观看日韩| 国模视频一区二区| 欧美美女操人视频| 精品爽片免费看久久| 久久精品国产亚洲| 日韩中文字幕在线| 欧美成人免费在线视频| 国产精品福利久久久| 欧美精品中文字幕一区| 国产亚洲欧美日韩精品| 亚洲精品国产欧美|