SQL
SERVER的臨時(shí)表有本地臨時(shí)表和全局臨時(shí)表之分,在聯(lián)機(jī)叢書中這樣描述:
有本地和全局兩種類型的臨時(shí)表,二者在名稱、可見性和可用性上均不相同。本地臨時(shí)表的名稱以單個(gè)數(shù)字符號(hào) (#) 打頭;它們僅對當(dāng)前的用戶連接是可見的;當(dāng)用戶從 Microsoft® SQL Server™ 2000 實(shí)例斷開連接時(shí)被刪除。全局臨時(shí)表的名稱以數(shù)學(xué)符號(hào) (##) 打頭,創(chuàng)建后對任何用戶都是可見的,當(dāng)所有引用該表的用戶從 SQL Server 斷開連接時(shí)被刪除。
在存儲(chǔ)過程中創(chuàng)建的本地臨時(shí)表,相當(dāng)于存儲(chǔ)過程的變量,只在存儲(chǔ)過程內(nèi)可見,而在前臺(tái)程序中創(chuàng)建的本地臨時(shí)表,就和微軟聯(lián)機(jī)叢書中所寫的一樣,是對當(dāng)前的用戶連接可見。了解了這些,可以在不同場合不同需求下使用不同的方法來創(chuàng)建本地臨時(shí)表,這樣,會(huì)使臨時(shí)表發(fā)揮它最大的用處。
/*****************表變量********************/
declare @t table(
cataid int
)
insert into @t select a.cataid from f_getchlid(27,'5961051') a
select top 10 favorites.*,multicata.cataname
from favorites left outer join multicata on favorites.cataid=multicata.cataid
where favorites.userid='5961051' and favorites.cataid in (
select * from @t)
/****************臨時(shí)表************************/
方法一、
select a.cataid into #t from f_getchlid(27,'5961051') a
select top 10 favorites.*,multicata.cataname
from favorites left outer join multicata on favorites.cataid=multicata.cataid
where favorites.userid='5961051' and favorites.cataid in (
select * from #t)
drop table #t
方法二、
create table #t (
cataid int
)
insert into #t select a.cataid from zhaoguoguang.f_getchlid(27,'5961051') a
select top 10 favorites.*,multicata.cataname
from favorites left outer join multicata on favorites.cataid=multicata.cataid
where favorites.userid='5961051' and favorites.cataid in (
select * from #t)
drop table #t
posted on 2006-09-28 14:21
SIMONE 閱讀(2973)
評論(0) 編輯 收藏 所屬分類:
SQL SERVER