SQLSERVER2000中表變數的應用

2022-01-31 23:52:44 字數 1963 閱讀 5832

原語句如下

1

declare

@ddatetime

2set@d=

getdate

() 3

select

[p_id

]from

[productinfo]4

where

[p_id]in

5 (28674,28667,28241,355,7210,14646,2164,11891,4519,14671,21788,21816,21817,21108,21196)6

select

[語句執行花費時間(毫秒)]=

datediff(ms,@d,getdate())

現要求按括號中的id順序輸出結果

此時, 可以用到sqlserver2000 以上版本中特有的表變數(table)(亦可用臨時表,但效能還是有不小的差距)

結果語句如下:

1

declare

@d2datetime

2set

@d2=

getdate

() 3

declare

@list

nvarchar(4000)4

declare

@str

nvarchar(10)5

declare

@orderid

int6

declare

@tmp

int7

8declare

@tablevar

table (orderid int

primary

key ,testid int)9

10set

@list='

28674,28667,28241,355,7210,14646,2164,11891,4519,14671,21788,21816,21817,21108,21196'11

set@orderid=0

12while (charindex('

,',@list)>0)

13begin

1415

set@str

=substring(@list,1,charindex('

,',@list

))16

print

@str

17set

@tmp

=cast(replace(@str,'

,','') as

int)

18print

@tmp

19set

@list

=substring(@list,len(@str)+

1,len(@list)-

len(@str)+1)

20--

--set @str=replace(@str,',','')

21set

@orderid

=@orderid+1

22print

@orderid

23insert

into

@tablevar

values (@orderid, @tmp)24

end25

26--

select testid from @tablevar order by orderid

2728

29select

[p_id

]from

productinfo p

30inner

join

@tablevar

a 31

on p.p_id=

a.testid

32order

bya.orderid

3334

select

[語句執行花費時間(毫秒)]=

datediff(ms,@d2,getdate())

sql server2000 系統表常用操作

得到資料庫中所有使用者表 select name from sysobjects where xtype u and name dtproperties order by name 得到資料庫中所有使用者檢視 select name from sysobjects where xtype v and...

SQLSERVER2000技術規格

sqlserver2000技術規格 系統技術規格 每個伺服器最多可以允許16個sqlserver例項 每個例項可擁有 2147483467 個鎖 資料庫技術規格 sqlserver的資料庫大小1048516tb 每個資料庫可擁有的檔案組數32767 每個資料庫可擁有的檔案組數256 檔案大小 資料檔...

SQLSERVER2000啟動失敗

服務管理器中啟動sqlserver服務 彈出視窗的錯誤資訊是 本地計算機上的mssqlserver服務啟動後又停止了。一些服務自動停止,如果它們沒有什麼可做的,例如 效能日誌和警報 服務 1 解決方法 調整系統時間到你上一次能夠正常啟動的時間,啟動sqlserver服務,成功後,然後再把時間調回來。...