国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
sql分頁存儲過程

sql分頁存儲過程

分類: sql隨想 2009-01-10 00:02
大家都知道使用存儲過程,比直接用sql語句效率要高。其實在第一次執(zhí)行存儲過程和使用sql語句,在速度上是沒有什么太大的區(qū)別的。關鍵在于sql語句在執(zhí)行完成以后什么都沒有留下,而存儲過程則在數據庫里有預編譯的一個過程。所以存儲過程比sql少了編譯,所以要快一些。

CREATE PROCEDURE GetRecordFromPage2
    @tblName      varchar(255),       -- 表名
    @fldName      varchar(255),       -- 字段名
    @PageSize     int,           -- 頁尺寸
    @PageIndex    int,            -- 頁碼
    @IsCount      bit ,            -- 返回記錄總數, 非 0 值則返回
    @OrderType    bit ,            -- 設置排序類型, 非 0 值則降序
    @strId        varchar(255),   --編號
    @strWhere     varchar(1000)='', -- 查詢條件
    @strZiselect  varchar(1000)=''
AS

declare @strSQL   varchar(1000)     -- 主語句
declare @strTmp   varchar(300)      -- 臨時變量
declare @strOrder varchar(400)      -- 排序類型
declare @strbtype varchar(400)

if @strZiselect = ''
begin
   set @strbtype = @tblName
end
else
begin
   set @strbtype = '(select '+@fldName+ ' from ' +  @tblName + ' where ' + @strZiselect+') as '+@tblName
end


if @OrderType != 0
begin
    set @strTmp = '<(select min'
    set @strOrder = ' order by [' + @strId +'] desc'
end
else
begin
   set @strTmp = '>(select max'
    set @strOrder = ' order by [' + @strId +'] asc'
end

set @strSQL = 'select top ' + str(@PageSize) + @fldName+'  from ' +@strbtype+' where [' + @strId +']' + @strTmp + '(['
    + @strId + ']) from (select top ' + str((@PageIndex-1)*@PageSize) + ' ['+@strId+
     '] from [' + @tblName + ']'+@strOrder+') as tblTmp)'
    + @strOrder

if @strWhere != ''
    set @strSQL = 'select top ' + str(@PageSize) +@fldName +'  from ' +@strbtype+' where [' + @strId + ']' + @strTmp + '(['+ @strId + ']) from (select top '+ str((@PageIndex-1)*@PageSize) + ' ['+@strId+
        '] from [' + @tblName + '] where ' + @strWhere+ +@strOrder+') as tblTmp) and (' + @strWhere + ') '+@strOrder

if @PageIndex = 1
begin
    set @strSQL = 'select top ' + str(@PageSize) +@fldName +'  from '+@strbtype+' where '+@strWhere + @strOrder
end

if @IsCount != 0
    set @strSQL = 'select count(*) as Total from [' + @tblName + ']'

exec (@strSQL)
GO

本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現有害或侵權內容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
[百萬級]通用分頁存儲過程.[千萬級]實現千萬級數據的分頁顯示! - SQL Server - 數據庫開發(fā) - 大家論壇 - Powered by Discuz!
sql 優(yōu)化之:實現小數據量和海量數據的通用分頁顯示存儲過程(系列四)
SQL分頁語句 ( 轉自牛腩老師的博客 )
sql server分頁存儲過程
實現千萬級數據分頁的存儲過程!《
實現千萬級數據的分頁顯示!
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服