實(shí)現(xiàn)SQL分頁(yè)的存儲(chǔ)過(guò)程代碼
SQL分頁(yè)的存儲(chǔ)過(guò)程代碼,需要的朋友們直接拿去用,使用非常簡(jiǎn)單。
分享代碼如下
USE [SendMessage] GO /****** Object: StoredProcedure [dbo].[pages] Script Date: 07/09/2015 13:46:50 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROC [dbo].[pages] ( @tbname nvarchar(100), --要分頁(yè)顯示的表名 @FieldKey nvarchar(1000), --用于定位記錄的主鍵(惟一鍵)字段,可以是逗號(hào)分隔的多個(gè)字段 @PageCurrent int=1, --要顯示的頁(yè)碼 @PageSize int=10, --每頁(yè)的大小(記錄數(shù)) @FieldShow nvarchar(1000)='', --以逗號(hào)分隔的要顯示的字段列表,如果不指定,則顯示所有字段 @FieldOrder nvarchar(1000)='', --以逗號(hào)分隔的排序字段列表,可以指定在字段后面指定DESC/ASC @WhereString nvarchar(1000)=N'' --查詢條件 ) AS begin IF ISNULL(@FieldKey,N'')='' BEGIN RAISERROR(N'分頁(yè)處理需要主鍵(或者惟一鍵)',1,16) RETURN END IF ISNULL(@PageCurrent,0)<1 SET @PageCurrent=1 IF ISNULL(@PageSize,0)<1 SET @PageSize=10 IF ISNULL(@FieldShow,N'')=N'' SET @FieldShow=N'*' IF ISNULL(@FieldOrder,N'')=N'' SET @FieldOrder=N'' ELSE SET @FieldOrder=N'ORDER BY '+LTRIM(@FieldOrder) IF ISNULL(@WhereString,N'')=N'' SET @WhereString=N'' ELSE SET @WhereString=N'WHERE '+@WhereString+N'' --計(jì)算分頁(yè)顯示的TOPN值 DECLARE @TopN varchar(20),@StartRecord varchar(20),@EndRecord varchar(20) SELECT @TopN=@PageSize, @StartRecord=(@PageCurrent-1)*@PageSize+1, @EndRecord=(@PageCurrent-1)*@PageSize+@PageSize --第一頁(yè)直接顯示 IF @PageCurrent=1 EXEC(N'SELECT TOP '+@TopN +N' '+@FieldShow +N' FROM '+@tbname +N' '+@WhereString +N' '+@FieldOrder) ELSE EXEC(N'with temptbl as( select ROW_NUMBER() Over('+@FieldOrder+') as row, '+@FieldKey+' from '+@tbname+N' '+@WhereString+') select '+@FieldShow+' from (select B.* from (select '+@FieldKey+' from temptbl where row between '+@StartRecord+' and '+@EndRecord+')A left join '+@tbname+' B on A.'+@FieldKey+'=B.'+@FieldKey+')C') END
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助。
- sql2005 存儲(chǔ)過(guò)程分頁(yè)代碼
- sqlserver 千萬(wàn)數(shù)量級(jí)分頁(yè)存儲(chǔ)過(guò)程代碼
- sql 存儲(chǔ)過(guò)程分頁(yè)代碼 支持億萬(wàn)龐大數(shù)據(jù)量
- SQL Server 2005通用分頁(yè)存儲(chǔ)過(guò)程及多表聯(lián)接應(yīng)用
- mssql 高效的分頁(yè)存儲(chǔ)過(guò)程分享
- 基于Sql Server通用分頁(yè)存儲(chǔ)過(guò)程的解決方法
- 深入sql server 2005 萬(wàn)能分頁(yè)存儲(chǔ)過(guò)程的詳解
- SQL Server 分頁(yè)查詢通用存儲(chǔ)過(guò)程(只做分頁(yè)查詢用)
- SQL Server兩種分頁(yè)的存儲(chǔ)過(guò)程使用介紹
- SqlServer 2000、2005分頁(yè)存儲(chǔ)過(guò)程整理
相關(guān)文章
如何區(qū)分SQL數(shù)據(jù)庫(kù)中的主鍵與外鍵
這篇文章主要介紹了如何分清SQL數(shù)據(jù)庫(kù)中的主鍵與外鍵,這里簡(jiǎn)單介紹下,方便需要的朋友2013-06-06sql server 臨時(shí)表 查找并刪除的實(shí)現(xiàn)代碼
考慮使用表變量而不使用臨時(shí)表。當(dāng)需要在臨時(shí)表上顯式地創(chuàng)建索引時(shí),或多個(gè)存儲(chǔ)過(guò)程或函數(shù)需要使用表值時(shí),臨時(shí)表很有用。通常,表變量提供更有效的查詢處理。2008-12-12sqlserver 支持定位當(dāng)前頁(yè),自定義排序的分頁(yè)SQL(拒絕動(dòng)態(tài)SQL)
sqlserver 支持定位當(dāng)前頁(yè),自定義排序的分頁(yè)SQL(拒絕動(dòng)態(tài)SQL)2010-05-05深入C++ string.find()函數(shù)的用法總結(jié)
本篇文章是對(duì)C++中string.find()函數(shù)的用法進(jìn)行了詳細(xì)的總結(jié)與分析,需要的朋友參考下2013-05-05SQL SERVER 與ACCESS、EXCEL的數(shù)據(jù)轉(zhuǎn)換
SQL SERVER 與ACCESS、EXCEL的數(shù)據(jù)轉(zhuǎn)換...2006-07-07SQLSERVER對(duì)加密的存儲(chǔ)過(guò)程、視圖、觸發(fā)器進(jìn)行解密(推薦)
這篇文章主要介紹了SQLSERVER對(duì)加密的存儲(chǔ)過(guò)程、視圖、觸發(fā)器進(jìn)行解密,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-01-01揭秘SQL Server 2014有哪些新特性(2)-固態(tài)硬盤(pán) Buffer Pool(緩沖池) 擴(kuò)展
SQL Server 2014 中引入的緩沖池?cái)U(kuò)展提供數(shù)據(jù)庫(kù)引擎緩沖池的非易失性隨機(jī)存取內(nèi)存(即固態(tài)硬盤(pán))擴(kuò)展的無(wú)縫集成,從而顯著提高 I/O 吞吐量。 那么今天我們來(lái)探究下,這個(gè)功能到底如何強(qiáng)悍吧2014-08-08SQL學(xué)習(xí)筆記四 聚合函數(shù)、排序方法
SQL學(xué)習(xí)筆記四 聚合函數(shù)、排序方法,在數(shù)據(jù)調(diào)用中非常實(shí)用。2011-08-08