原語句如下
1declare
@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)(亦可用臨時表,但效能還是有不小的差距)
結果語句如下:
1declare
@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
@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服務,成功後,然後再把時間調回來。...