SQL SERVER的暫存資料表有本地暫存資料表和全域暫存資料表之分,在聯機叢書中這樣描述:
有本地和全域兩種類型的暫存資料表,二者在名稱、可見度和可用性上均不相同。本地暫存資料表的名稱以單個數字記號 (#) 打頭;它們僅對當前的使用者串連是可見的;當使用者從 Microsoft SQL Server 2000 執行個體中斷連線時被刪除。全域暫存資料表的名稱以數學符號 (##) 打頭,建立後對任何使用者都是可見的,當所有引用該表的使用者從 SQL Server 中斷連線時被刪除。
在預存程序中建立的本地暫存資料表,相當於預存程序的變數,只在預存程序內可見,而在前景程式中建立的本地暫存資料表,就和微軟聯機叢書中所寫的一樣,是對當前的使用者串連可見。瞭解了這些,可以在不同場合不同需求下使用不同的方法來建立本地暫存資料表,這樣,會使暫存資料表發揮它最大的用處。The sql code:代碼後運行!">
普通瀏覽
複製代碼
列印代碼
-
- /*****************表變數********************/
- 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)
-
-
- /****************暫存資料表************************/
- 方法一、
- 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