一個分頁存儲過程代碼
------------------------------------
--用途:分頁存儲過程(對有主鍵的表效率極高)
--說明:
------------------------------------
ALTER PROCEDURE [UP_GetRecordByPage]
@tblName varchar(255), -- 表名
@fldName varchar(255), -- 主鍵字段名
@PageSize int = 10, -- 頁尺寸
@PageIndex int = 1, -- 頁碼
@IsReCount bit = 0, -- 返回記錄總數(shù), 非0 值則返回
@OrderType bit = 0, -- 設(shè)置排序類型, 非0 值則降序
@strWhere varchar(1000) = '' -- 查詢條件(注意: 不要加where)
AS
declare @strSQL varchar(6000) -- 主語句
declare @strTmp varchar(100) -- 臨時變量
declare @strOrder varchar(400) -- 排序類型
if @OrderType != 0
begin
set @strTmp = '<(select min'
set @strOrder = ' order by [' + @fldName +'] desc'
end
else
begin
set @strTmp = '>(select max'
set @strOrder = ' order by [' + @fldName +'] asc'
end
set @strSQL = 'select top ' + str(@PageSize) + ' * from ['
+ @tblName + '] where [' + @fldName + ']' + @strTmp + '(['
+ @fldName + ']) from (select top ' + str((@PageIndex-1)*@PageSize) + ' ['
+ @fldName + '] from [' + @tblName + ']' + @strOrder + ') as tblTmp)'
+ @strOrder
if @strWhere != ''
set @strSQL = 'select top ' + str(@PageSize) + ' * from ['
+ @tblName + '] where [' + @fldName + ']' + @strTmp + '(['
+ @fldName + ']) from (select top ' + str((@PageIndex-1)*@PageSize) + ' ['
+ @fldName + '] from [' + @tblName + '] where ' + @strWhere + ' '
+ @strOrder + ') as tblTmp) and ' + @strWhere + ' ' + @strOrder
if @PageIndex = 1
begin
set @strTmp =''
if @strWhere != ''
set @strTmp = ' where ' + @strWhere
set @strSQL = 'select top ' + str(@PageSize) + ' * from ['
+ @tblName + ']' + @strTmp + ' ' + @strOrder
end
if @IsReCount != 0
set @strSQL = 'select count(*) as Total from [' + @tblName + ']'+' where ' + @strWhere
exec (@strSQL)
相關(guān)文章
SQL Server 在分頁獲取數(shù)據(jù)的同時獲取到總記錄數(shù)
本文通過兩種方法給大家介紹SQL Server 在分頁獲取數(shù)據(jù)的同時獲取到總記錄數(shù),感興趣的朋友跟隨腳本之家小編一起學(xué)習(xí)吧2018-05-05sql多表行轉(zhuǎn)列、級聯(lián)行轉(zhuǎn)列示例代碼
這篇文章主要介紹了sql多表行轉(zhuǎn)列、級聯(lián)行轉(zhuǎn)列示例代碼,需要的朋友可以參考下2014-03-03SQL Server 作業(yè)的備份(備份作業(yè)非備份數(shù)據(jù)庫)
我的方法是把作業(yè)導(dǎo)出成文件備份起來,因為當你服務(wù)器維護的多了的時候很多你的作業(yè) 就很成問題,很麻煩2012-06-06delete from 表名與truncate table 表名區(qū)別
delete from 表名與truncate table 表名區(qū)別,選擇適合我們的刪除數(shù)據(jù)庫數(shù)據(jù)的方法2012-10-10SQL Server 壓縮日志與減少SQL Server 文件大小的方法
這篇文章主要為大家描述的是實現(xiàn)SQL Server 壓縮日志與SQL Server 文件大小的實際操作步驟,在此實際操作中我們要按步驟一步一步的進行,未進行前面的步驟時,請不要做后面的步驟,以免損壞你的數(shù)據(jù)庫2014-07-07基于SQL Server中如何比較兩個表的各組數(shù)據(jù) 圖解說明
本篇文章小編為大家介紹,基于SQL Server中如何比較兩個表的各組數(shù)據(jù) 圖解說明。需要的朋友參考下2013-04-04sqlserver只有MDF文件恢復(fù)數(shù)據(jù)庫的方法
因為只有mdf文件,想恢復(fù)數(shù)據(jù)庫,大家可以用下面的代碼先測試2008-10-10詳解SQL Server數(shù)據(jù)庫狀態(tài)和文件狀態(tài)
本文通過實例給大家詳解sqlserver數(shù)據(jù)庫狀態(tài) (database states) 和文件狀態(tài) (database states),非常不錯,具有參考借鑒價值,需要的朋友參考下吧2017-09-09sqlserver 快速生成漢字的首拼字母的函數(shù)(經(jīng)典)
經(jīng)常要對姓名按拼音搜索,所以需要做如下函數(shù)來快速獲取首拼,需要的朋友可以參考下2012-05-05