首頁 資料庫 mysql教程 分页显示的存储过程(sqlserver 2k)

分页显示的存储过程(sqlserver 2k)

Jun 07, 2016 pm 03:44 PM
sqlserver 分頁 儲存 顯示 網站 過程

前两天在做网站时需要手动分页 .一开始用的是 SqlDataAdapter 的 public int Fill(DataSet, int, int, string); 但后来发现数据量一但很大时服务器的内存增长非常快 . 原因在这个DataSet 包含的记录数将不会多于由maxRecords 指示的记录数。但仍然从服务器返

   前两天在做网站时需要手动分页分页显示的存储过程(sqlserver 2k).一开始用的是 SqlDataAdapter 的 public int Fill(DataSet, int, int, string); 但后来发现数据量一但很大时服务器的内存增长非常快分页显示的存储过程(sqlserver 2k). 原因在这个 DataSet 包含的记录数将不会多于由maxRecords 指示的记录数。但仍然从服务器返回该查询所生成的整个结果集。分页显示的存储过程(sqlserver 2k)
    最后只能改为sql存储过程(其实也是在网上抄来的分页显示的存储过程(sqlserver 2k)). --这是分面的存储过程

分页显示的存储过程(sqlserver 2k)分页显示的存储过程(sqlserver 2k)
分页显示的存储过程(sqlserver 2k)CREATE    PROCEDURE dbo.GetPagingRecord 
分页显示的存储过程(sqlserver 2k)    ( 
分页显示的存储过程(sqlserver 2k)        
@tablename varchar(100),--表名或视图表 
分页显示的存储过程(sqlserver 2k)
        @fieldlist varchar(4000)='*',--欲选择字段列表 
分页显示的存储过程(sqlserver 2k)
        @orderfield varchar(100),--排序字段 
分页显示的存储过程(sqlserver 2k)
        @keyfield varchar(100),--主键 
分页显示的存储过程(sqlserver 2k)
        @pageindex int,--页号,从0开始 
分页显示的存储过程(sqlserver 2k)
        @pagesize int=20,--页尺寸 
分页显示的存储过程(sqlserver 2k)
        @strwhere varchar(4000),--条件 
分页显示的存储过程(sqlserver 2k)
        @ordertype bit=1--排序,1,降序,0,升序 
分页显示的存储过程(sqlserver 2k)

分页显示的存储过程(sqlserver 2k)    ) 
分页显示的存储过程(sqlserver 2k)
AS 
分页显示的存储过程(sqlserver 2k)分页显示的存储过程(sqlserver 2k)
/**//**
分页显示的存储过程(sqlserver 2k)名称:GetPagingRecord 
分页显示的存储过程(sqlserver 2k)作用:按任意字段进行排序分页 
分页显示的存储过程(sqlserver 2k)作者:菩提树(MARK MA) 
分页显示的存储过程(sqlserver 2k)时间:2004-12-14 
分页显示的存储过程(sqlserver 2k)
分页显示的存储过程(sqlserver 2k)
*/
 
分页显示的存储过程(sqlserver 2k)    
SET NOCOUNT ON 
分页显示的存储过程(sqlserver 2k)
分页显示的存储过程(sqlserver 2k)    
DECLARE @sqlstr varchar(6000
分页显示的存储过程(sqlserver 2k)    
--处理SQL中危险字符,并且将条件处理成易嵌入的形式 
分页显示的存储过程(sqlserver 2k)
    SET @strwhere=replace(@strwhere,'''',''''''
分页显示的存储过程(sqlserver 2k)    
SET @strwhere=replace(@strwhere,'--',''
分页显示的存储过程(sqlserver 2k)    
SET @strwhere=replace(@strwhere,';',''
分页显示的存储过程(sqlserver 2k)    
SET @sqlstr='declare @CurPageNum int;' 
分页显示的存储过程(sqlserver 2k)    
SET @sqlstr=@sqlstr+'declare @nextpagenum int;' 
分页显示的存储过程(sqlserver 2k)    
SET @sqlstr=@sqlstr+'set @curpagenum='+cast(@PageIndex as varchar)+'*'+cast(@Pagesize as varchar)+';' 
分页显示的存储过程(sqlserver 2k)    
SET @sqlstr=@sqlstr+'set @nextpagenum='+cast(@PageIndex+1 as varchar)+'*'+cast(@Pagesize as varchar)+';' 
分页显示的存储过程(sqlserver 2k)    
SET @sqlstr=@sqlstr+'declare @sqlstr varchar(6000);' 
分页显示的存储过程(sqlserver 2k)    
IF @ordertype=1 
分页显示的存储过程(sqlserver 2k)    
BEGIN 
分页显示的存储过程(sqlserver 2k)    
SET @sqlstr=@sqlstr+'set @sqlstr=''select '+@fieldlist+' from ( select top ''+cast(@nextpagenum as varchar)+'' * from  
分页显示的存储过程(sqlserver 2k) 
分页显示的存储过程(sqlserver 2k)        
'+@tablename+'  where '+@strwhere+' order by '+@orderfield+' desc ) as a where '+@keyfield+' not in (  
分页显示的存储过程(sqlserver 2k) 
分页显示的存储过程(sqlserver 2k)        select top 
''+cast(@curpagenum as varchar)+'' '+@keyfield+' from '+@tablename+' where '+@strwhere+'  
分页显示的存储过程(sqlserver 2k) 
分页显示的存储过程(sqlserver 2k)        order by 
'+@orderfield+' desc) order by '+@orderfield+' desc'';'
分页显示的存储过程(sqlserver 2k)    
END 
分页显示的存储过程(sqlserver 2k)    
ELSE 
分页显示的存储过程(sqlserver 2k)    
BEGIN 
分页显示的存储过程(sqlserver 2k)    
SET @sqlstr=@sqlstr+'set @sqlstr=''select '+@fieldlist+' from ( select top ''+cast(@nextpagenum as varchar)+'' * from  
分页显示的存储过程(sqlserver 2k) 
分页显示的存储过程(sqlserver 2k)        
'+@tablename+'  where '+@strwhere+' order by '+@orderfield+' asc ) as a where '+@keyfield+' not in (  
分页显示的存储过程(sqlserver 2k)
分页显示的存储过程(sqlserver 2k)        select top 
''+cast(@curpagenum as varchar)+'' '+@keyfield+' from '+@tablename+' where '+@strwhere+'  
分页显示的存储过程(sqlserver 2k)
分页显示的存储过程(sqlserver 2k)        order by 
'+@orderfield+' asc) order by '+@orderfield+' asc'';' 
分页显示的存储过程(sqlserver 2k)    
END 
分页显示的存储过程(sqlserver 2k)    
SET @sqlstr=@sqlstr+'execute( @sqlstr)' 
分页显示的存储过程(sqlserver 2k)    
PRINT @sqlstr 
分页显示的存储过程(sqlserver 2k)    
EXECUTE(@sqlstr
分页显示的存储过程(sqlserver 2k)
分页显示的存储过程(sqlserver 2k)
GO
分页显示的存储过程(sqlserver 2k)

    最近在关注sql server2005 ,其t-sql增强方面改了很多,而且网上也有网友写了相对应的分页代码,简单了很多,很值得一试噢。
 


 

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

sqlserver資料庫中已存在名為的物件怎麼解決 sqlserver資料庫中已存在名為的物件怎麼解決 Apr 05, 2024 pm 09:42 PM

sqlserver資料庫中已存在名為的物件怎麼解決

sqlserver怎麼匯入mdf文件 sqlserver怎麼匯入mdf文件 Apr 08, 2024 am 11:41 AM

sqlserver怎麼匯入mdf文件

sqlserver服務無法啟動怎麼辦 sqlserver服務無法啟動怎麼辦 Apr 05, 2024 pm 10:00 PM

sqlserver服務無法啟動怎麼辦

怎麼查看sqlserver連接埠號 怎麼查看sqlserver連接埠號 Apr 05, 2024 pm 09:57 PM

怎麼查看sqlserver連接埠號

sqlserver誤刪資料庫怎麼恢復 sqlserver誤刪資料庫怎麼恢復 Apr 05, 2024 pm 10:39 PM

sqlserver誤刪資料庫怎麼恢復

sqlserver資料庫在哪裡 sqlserver資料庫在哪裡 Apr 05, 2024 pm 08:21 PM

sqlserver資料庫在哪裡

sqlserver安裝失敗怎麼樣刪除乾淨 sqlserver安裝失敗怎麼樣刪除乾淨 Apr 05, 2024 pm 11:27 PM

sqlserver安裝失敗怎麼樣刪除乾淨

sqlserver英文安裝怎麼更改中文 sqlserver英文安裝怎麼更改中文 Apr 05, 2024 pm 10:21 PM

sqlserver英文安裝怎麼更改中文

See all articles