SQL 分頁儲存過程
GO
/****** Object: StoredProcedure [dbo].[UP_GetRecordByPage] Script Date: 2020-09-24 13:20:25 ******/
DROP PROCEDURE [dbo].[UP_GetRecordByPage]
GO
/****** Object: StoredProcedure [dbo].[UP_GetRecordByPage] Script Date: 2020-09-24 13:20:25 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/****** Object: StoredProcedure [dbo].[UP_GetRecordByPage] Script Date: 04/14/2015 16:57:36 ******/
--IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[UP_GetRecordByPage]') AND type in (N'P', N'PC'))
--DROP PROCEDURE [dbo].[UP_GetRecordByPage]
--GO
CREATE PROCEDURE [dbo].[UP_GetRecordByPage]
(
@tblName varchar(255), -- 表名
@strGetFields varchar(4000) = '*', -- 需要返回的列
@fldName varchar(255)='', -- 排序的欄位名
@PageSize int = 10, -- 頁尺寸
@PageIndex int = 1, -- 頁碼
@IsReCount bit = 0, -- 返回記錄總數, 非 0 值則返回
@OrderType int = 0, -- 設定排序型別, 0升序、1降序、2任意欄位的升和降,需要注意傳入值否則查詢出錯
@strWhere varchar(1500) = '' -- 查詢條件 (注意: 不要加 where)
)
AS
declare @strSQL varchar(8000) -- 主語句
declare @strOrder varchar(5000) -- 排序型別
if @IsReCount != 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 @strOrder ='SELECT ROW_NUMBER() OVER (ORDER BY '+@fldName +' asc) AS RowNumber, '+@strGetFields+' FROM '
end
else if @OrderType = 1
begin
set @strOrder ='SELECT ROW_NUMBER() OVER (ORDER BY '+@fldName +' desc) AS RowNumber, '+@strGetFields+' FROM '
end
else if @OrderType = 2
begin
set @strOrder ='SELECT ROW_NUMBER() OVER (ORDER BY '+@fldName +') AS RowNumber, '+@strGetFields+' FROM '
end
if @strWhere != ''
set @strSQL = ' SELECT TOP ' + str(@PageSize) +' * FROM ( '+@strOrder+' '+@tblName+' where '+@strWhere+' ) t '
+'WHERE RowNumber >= 1+'+str(@PageSize*(@PageIndex-1))
else
set @strSQL = ' SELECT TOP ' + str(@PageSize) +' * FROM ( '+@strOrder+' '+@tblName+' ) t '
+'WHERE RowNumber >= 1+'+str(@PageSize*(@PageIndex-1))
end
print(@strSQL)
exec (@strSQL)
GO
相關文章
- sql儲存過程分頁SQL儲存過程
- Sql儲存過程分頁--臨時表儲存SQL儲存過程
- (SQL Server)分頁的儲存過程SQLServer儲存過程
- 兩種SQL分頁方法儲存過程和遊標儲存過程SQL儲存過程
- 分頁儲存過程儲存過程
- SQL SERVER 2005分頁儲存過程SQLServer儲存過程
- 通用分頁儲存過程儲存過程
- SQL Server 儲存過程的經典分頁(轉)SQLServer儲存過程
- SqlServer-儲存過程分頁SQLServer儲存過程
- oracle儲存過程分頁程式碼Oracle儲存過程
- 簡單的儲存過程分頁儲存過程
- 簡單的分頁儲存過程儲存過程
- Oracle 儲存過程分頁 + Sqlsugar呼叫Oracle儲存過程SqlSugar
- SQL Server 2000 的分頁查詢(儲存過程)SQLServer儲存過程
- asp.net分頁的SQL語句及儲存過程ASP.NETSQL儲存過程
- sqlserver儲存過程實現多表分頁SQLServer儲存過程
- 分頁控制元件及儲存過程控制元件儲存過程
- [MSSQL]mssql海量高效分頁儲存過程SQL儲存過程
- ORACLE高效分頁儲存過程程式碼Oracle儲存過程
- 基於ROWCOUNT的分頁儲存過程儲存過程
- asp.net SQL Server 儲存過程分頁及程式碼呼叫ASP.NETSQLServer儲存過程
- 通用的SQL Server資料庫查詢分頁儲存過程SQLServer資料庫儲存過程
- 支援DISTINCT的通用分頁儲存過程(SQL2005)儲存過程SQL
- 使用儲存過程實現分頁列印 (轉)儲存過程
- SQLServer 2005通用分頁儲存過程SQLServer儲存過程
- 拋磚引玉——通用分頁儲存過程儲存過程
- 簡單談基於SQL SERVER 分頁儲存過程的演進SQLServer儲存過程
- SQL儲存過程示例SQL儲存過程
- SQL Server 儲存過程SQLServer儲存過程
- 【SQL Server】--儲存過程SQLServer儲存過程
- SQL 儲存過程裡呼叫另一個儲存過程SQL儲存過程
- 儲存過程分頁 Ado.Net分頁 EF分頁 滿足90%以上儲存過程
- asp.net利用儲存過程分頁程式碼ASP.NET儲存過程
- MS SQL Server儲存過程SQLServer儲存過程
- Sql Server系列:儲存過程SQLServer儲存過程
- SQL 建立儲存過程PROCEDURESQL儲存過程
- 解密SQL SERVER儲存過程解密SQLServer儲存過程
- SQL儲存過程迴圈SQL儲存過程