SQL Server 支持臨時表。臨時表就是那些名稱以井號 (#) 開頭的表。如果當用戶斷開連接時沒有除去臨時表,SQL Server 將自動除去臨時表。臨時表不存儲在當前數據庫內,而是存儲在系統數據庫 tempdb 內。

          臨時表有兩種類型: 

          本地臨時表 
          以一個井號 (#) 開頭的那些表名。只有在創建本地臨時表的連接上才能看到這些表。

          全局臨時表 
          以 兩個井號 (##) 開頭的那些表名。在所有連接上都能看到全局臨時表。如果在創建全局臨時表的連接斷開前沒有顯式地除去這些表,那么只要所有其它任務停止引用它們,這些表即 被除去。當創建全局臨時表的連接斷開后,新的任務不能再引用它們。當前的語句一執行完,任務與表之間的關聯即被除去;因此通常情況下,只要創建全局臨時表 的連接斷開,全局臨時表即被除去。
          ==========================================================================

          SQL code
          --應用本地臨時表 declare @sql varchar(100) set @sql='select ''123'' as a,''abasdf'' as b into #t'
           exec(@sql) select 
          * from #t go /*發現不能正確顯示臨時表的數據 提示: 服務器: 消息 208,級別 16,狀態 1,行 5 對象名 '#t' 無效。 */
           --修改為全局臨時表 declare @sql varchar(100) set @sql='select ''123'' as a,''abasdf'' as b into ##t'
           exec(@sql) select * from ##t drop table ##t go /*可以正確顯示臨時表的數據


          分析原因:exec(@sql) 相當于重新建立一個數據庫對話,所以對于本地臨時表,使用exec(@sql)創建臨時表,
          在exec外部不能正確訪問;而使用全局臨時表就ok了
          */ 

          SQL code
          exec ('select top 10 * into ##temp from syhouse'); exec ('select * from ##temp');
          http://blog.csdn.net/hank5658/article/details/5543622
          posted on 2012-02-16 11:17 sanmao 閱讀(1882) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          常用鏈接

          留言簿(5)

          隨筆分類

          隨筆檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 封开县| 崇文区| 泌阳县| 东平县| 会同县| 东源县| 菏泽市| 彝良县| 库尔勒市| 田东县| 武强县| 额尔古纳市| 云浮市| 盐源县| 南投县| 旬邑县| 龙里县| 辛集市| 临猗县| 东乌| 邻水| 固始县| 广宁县| 江山市| 西城区| 金堂县| 常德市| 安顺市| 阿鲁科尔沁旗| 松原市| 山西省| 寿阳县| 华蓥市| 金湖县| 大埔区| 江西省| 牙克石市| 南康市| 色达县| 合阳县| 洪洞县|