改進的效率較高的sql2000分頁儲存過程

2021-04-21 14:18:59 字數 1372 閱讀 7960

create  procedure [dbo].[test_student]

-- add the parameters for the stored procedure here

@id nvarchar(20),--學生編號

@startrowindex int,--起始頁(從0開始)

@maximumrows int--最大行

asdeclare @strsql   varchar(5000)       -- 主語句

declare @strtmp   varchar(110)        -- 臨時變數

declare @strorder varchar(400)        -- 排序型別

declare @sql nvarchar(3000)

begin transaction

begin

if @id is null

begin

set @id =''

endset @strtmp = '<(select min'--降序排列

set @strorder = ' order by student.id desc'

set @strsql = 'select top ' + str(@maximumrows) +'  student.id,

student.name

from student 

where student.id like isnull('''+@id+''','''')+''%'' '+ @strorder

--如果是第一頁就執行以上**,這樣會加快執行速度

endelse

begin

set @strsql = 'select top ' + str(@maximumrows) + ' student.id,

student.name

from student where like isnull('''+@id+''','''')+''%'' and student.id ' + @strtmp + ' (id)

from (select top ' + str((@startrowindex)*@maximumrows) + ' student.id from student

where student.id like isnull('''+@id+''','''')+''%'' ' + @strorder + ') as tbltmp)'+ @strorder 

end

exec (@strsql)

select @strsql

endif @@error > 0

begin

rollback transaction

endcommit transaction

SQL2005比SQL2000改進的新功能

1.top 表示式 sql server 2000的top是個固定值,是不是覺得不爽,現在改進了。前n名的訂單 use northwind declare n int set n 10 select top n from orders 2.分頁 不知各位過去用sql server 2000是怎麼分頁...

SQL2000檢視表的大小

以前檢視乙個巨大的資料庫,想把裡面沒用的東西刪了,減少資料庫檔案的大小,但是不知道如何或者其中某個表的大小,後來經過一番努力終於找到如何檢視sql server 2000 中資料表大小的方法了,在sql server 2005中,微軟發布了乙個報表,可以直接檢視,但是這個報表不能用於sql serv...

解密SQL2000的儲存過程

內容來自網際網路,作者不明 drop procedure sp decrypt gocreate procedure sp decrypt objectname varchar 50 asbegin begin transaction add by playyuer declare objectna...