国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > 綜合 > 正文

MS SQLSERVER通用存儲過程分頁

2024-07-21 02:47:20
字體:
供稿:網(wǎng)友
MS SQLSERVER通用存儲過程分頁

最近在面試的時候,遇到個奇葩的禿頂老頭面試官。

問:寫過存儲過程分頁嗎?

答:沒寫過,但是我知道分頁存儲的原理,我自己也寫過,只是在工作中沒寫過。

問:那你這么多年工作中就沒寫過嗎?

答:的確沒寫過,因為項目數(shù)據(jù)量都特別小。

然后,這奇葩就起身就要走人了,連個招呼都沒有。想我面試了這么多公司,這種奇葩面試官,還是頭回見到,一點(diǎn)職業(yè)素質(zhì),禮貌都木有。氣死我了!

明天要去入職新公司了,今天閑來無事,試著寫了寫這個存儲過程分頁。只在SQLSERVER2008上測試過,不過我想,2000以上版本應(yīng)該都會支持的吧。

廢話到此,上代碼。

  

if (object_id('PRoc_Paging', 'P') is not null)    drop proc Proc_Paginggocreate procedure Proc_Paging(@TableName varchar(20),--表名@PageIndex int=0,--起始頁索引,從0開始@PageSize varchar(1000)='10',--默認(rèn)每頁顯示的數(shù)量,默認(rèn)每頁顯示10條記錄@Params varchar(100)='*',--分頁結(jié)果中顯示的字段,默認(rèn)顯示全部的字段@ID varchar(20)='ID',--數(shù)據(jù)編號排序字段,默認(rèn)為ID@OrderByID varchar(20)='asc',--數(shù)據(jù)編號排序方式,默認(rèn)為正序排序@StrWhereSource varchar(100),--分頁數(shù)據(jù)的查詢條件,必須以where開頭@StrWherePaging varchar(100),--已經(jīng)分頁的數(shù)據(jù)的查詢條件,不能以where開頭@OrderBy varchar(100)='ID asc'--數(shù)據(jù)排序方式)asdeclare @Sql varchar(8000),@PageStartNum varchar(1000),@PageEndNum varchar(1000),@Sql2 varchar(1000),@Sql3 varchar(1000)--1.獲取指定頁數(shù)據(jù)set @PageStartNum=(@PageIndex)*(@PageSize)--起始數(shù)據(jù)編號set @PageEndNum=(@PageIndex+1)*(@PageSize)--截止數(shù)據(jù)編號set @Sql='select row_number() over(order by '+@ID+' '+@OrderByID+') Num,'+@Params+' '+'into #temp '+'from '+@TableName+' '+@StrWhereSource+''+'select * from #temp where Num between '+''+(@PageStartNum)+' and '+(@PageEndNum)+' '+@StrWherePaging+' order by '+@OrderBy+' 'exec(@Sql)--print @Sql--2.獲取總記錄數(shù)set @Sql2='select count(1) from '+@TableName+''exec(@Sql2)--print @Sql2--3.獲取分頁總數(shù)set @Sql3='select ceiling(count(1)*1.0/('+@PageSize+')) from '+@TableName+''exec(@Sql3)--print @Sql3go--測試代碼exec Proc_Paging 'Customers',2,10,'CustomerID,CompanyName,Address,City,PostalCode','CustomerID','asc','where PostalCode>''1000'' ','and Num>1 ','Num asc'go

  下面是運(yùn)行結(jié)果截圖。

  執(zhí)行結(jié)果:

  生成的sql語句:

大神,勿噴;菜鳥,輕拍。謝謝!


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 栾城县| 格尔木市| 盐城市| 广东省| 宁津县| 永川市| 龙门县| 漠河县| 镇沅| 翁牛特旗| 英超| 丹阳市| 汾阳市| 额济纳旗| 武穴市| 广饶县| 兰溪市| 庆安县| 太仆寺旗| 丁青县| 焦作市| 尚志市| 延边| 武穴市| 阿坝| 德化县| 马尔康县| 邵武市| 绥化市| 乌拉特前旗| 子洲县| 遂川县| 樟树市| 故城县| 中阳县| 砚山县| 阿勒泰市| 通化市| 庆阳市| 黎川县| 阿城市|