alter
procedure
pages
@tablenames
varchar
(200
),
--表名,可以是多個表,但不能用別名
@primarykey
varchar
(100
),
--主鍵,可以為空,但@order為空時該值不能為空
@fields
varchar
(800
),
--要取出的字段,可以是多個表的字段,可以為空,為空表示select *
@pagesize
int,
--每頁記錄數
@currentpage
int,
--當前頁,0表示第1頁
@filter
varchar
(200) =
'',
--條件,可以為空,不用填 where
@order
varchar
(200) =
'',
--排序,可以為空,為空缺省按主鍵公升序排列,不用填 order by
@resultcount
varchar(24
)asbegin
declare
@toprow
varchar(12
)declare
@temppagesize
varchar(12
)if(len
(@order
)>0)
begin
set@order='
order by '+
@order
endelse
begin
set@order=''
endif
(len
(@filter
)<1)
begin
set@filter='
1=1'
endif
(@currentpage-1
<=0)
set@currentpage=0
if(len(
rtrim
(ltrim
(@resultcount
)))>0)
set@resultcount='
set rowcount '+
ltrim
(rtrim
(@resultcount
))set
@toprow
=rtrim
(ltrim
(str
(@pagesize*(
@currentpage-1
))))
set@temppagesize
=rtrim
(ltrim
(str
(@pagesize
)))exec('
declare @temptable table(rownum int identity(1,1),gid varchar(36))'+
'declare @datatable table(gid varchar(36))'+
'declare @date datetime'+
'set @date=getdate()'+
'set nocount on '+
''+@resultcount+'
insert into @temptable(gid) select '+
@primarykey+'
from '+
@tablenames+'
where '+
@filter
+@order+'
set rowcount '+
@temppagesize+'
insert into @datatable(gid) select gid from @temptable where rownum>'+
@toprow+'
select '+
@fields+'
from '+
@tablenames+'
where '+
@filter+'
and '+
@primarykey+'
in (select gid from @datatable)'+
@order+'
set rowcount 0'+
'print(datediff(ms,@date,getdate()))')
--declare @datatable table(gid varchar(12))'+'
---insert into @datatable(gid) select gid from @temptable where rownum>'+@toprow+'
--set rowcount '+@temppagesize+'
--+'set rowcount 0'
--print('insert into @temptable(gid) select '+@primarykey+' from '+@tablenames+' where '+@filter+@order)
---print('select '+@fields+' from '+@tablenames+' where '+@filter+' and '+@primarykey+' in(select gid from @datatable) '+@order)
endgo
sqlserver 2000 高效分頁儲存過程
alter procedure pages tablenames varchar 200 表名,可以是多個表,但不能用別名 primarykey varchar 100 主鍵,可以為空,但 order為空時該值不能為空 fields varchar 800 要取出的字段,可以是多個表的字段,可以為空...
SQLSERVER2000技術規格
sqlserver2000技術規格 系統技術規格 每個伺服器最多可以允許16個sqlserver例項 每個例項可擁有 2147483467 個鎖 資料庫技術規格 sqlserver的資料庫大小1048516tb 每個資料庫可擁有的檔案組數32767 每個資料庫可擁有的檔案組數256 檔案大小 資料檔...
SQLSERVER2000啟動失敗
服務管理器中啟動sqlserver服務 彈出視窗的錯誤資訊是 本地計算機上的mssqlserver服務啟動後又停止了。一些服務自動停止,如果它們沒有什麼可做的,例如 效能日誌和警報 服務 1 解決方法 調整系統時間到你上一次能夠正常啟動的時間,啟動sqlserver服務,成功後,然後再把時間調回來。...