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...