posts - 495,comments - 227,trackbacks - 0

          SQL SERVER的臨時表有本地臨時表和全局臨時表之分,在聯機叢書中這樣描述:

           
                 有本地和全局兩種類型的臨時表,二者在名稱、可見性和可用性上均不相同。本地臨時表的名稱以單個數字符號 (#) 打頭;它們僅對當前的用戶連接是可見的;當用戶從 Microsoft® SQL Server™ 2000 實例斷開連接時被刪除。全局臨時表的名稱以數學符號 (##) 打頭,創建后對任何用戶都是可見的,當所有引用該表的用戶從 SQL Server 斷開連接時被刪除。


          在存儲過程中創建的本地臨時表,相當于存儲過程的變量,只在存儲過程內可見,而在前臺程序中創建的本地臨時表,就和微軟聯機叢書中所寫的一樣,是對當前的用戶連接可見。了解了這些,可以在不同場合不同需求下使用不同的方法來創建本地臨時表,這樣,會使臨時表發揮它最大的用處。


          /*****************表變量********************/
          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

          posted on 2006-09-28 14:21 SIMONE 閱讀(2982) 評論(0)  編輯  收藏 所屬分類: SQL SERVER
          主站蜘蛛池模板: 商丘市| 蒲江县| 临潭县| 河东区| 定安县| 海晏县| 永福县| 沙田区| 兴业县| 永州市| 乃东县| 贵溪市| 龙游县| 蒙阴县| 新乡县| 来宾市| 祁门县| 安平县| 三河市| 社会| 安西县| 襄城县| 盐城市| 墨玉县| 瑞安市| 文山县| 固镇县| 博罗县| 司法| 仪征市| 富顺县| 岳普湖县| 南川市| 乐东| 达拉特旗| 闽清县| 金湖县| 巴林右旗| 莆田市| 莒南县| 连云港市|