2 回答

TA貢獻(xiàn)1906條經(jīng)驗(yàn) 獲得超3個(gè)贊
不是吧?
#TempTable
代表臨時(shí)表,
臨時(shí)表
可以創(chuàng)建本地和全局臨時(shí)表。本地臨時(shí)表僅在當(dāng)前會(huì)話中可見;全局臨時(shí)表在所有會(huì)話中都可見。
本地臨時(shí)表的名稱前面有一個(gè)編號(hào)符 (#table_name),而全局臨時(shí)表的名稱前面有兩個(gè)編號(hào)符 (##table_name)。
SQL 語句使用 CREATE TABLE 語句中為 table_name 指定的名稱引用臨時(shí)表:
CREATE TABLE #MyTempTable (cola INT PRIMARY KEY)
INSERT INTO #MyTempTable VALUES (1)
如果本地臨時(shí)表由存儲(chǔ)過程創(chuàng)建或由多個(gè)用戶同時(shí)執(zhí)行的應(yīng)用程序創(chuàng)建,則 SQL Server 必須能夠區(qū)分由不同用戶創(chuàng)建的表。為此,SQL Server 在內(nèi)部為每個(gè)本地臨時(shí)表的表名追加一個(gè)數(shù)字后綴。存儲(chǔ)在 tempdb 數(shù)據(jù)庫的 sysobjects 表中的臨時(shí)表,其全名由 CREATE TABLE 語句中指定的表名和系統(tǒng)生成的數(shù)字后綴組成。為了允許追加后綴,為本地臨時(shí)表指定的表名 table_name 不能超過 116 個(gè)字符。
除非使用 DROP TABLE 語句顯式除去臨時(shí)表,否則臨時(shí)表將在退出其作用域時(shí)由系統(tǒng)自動(dòng)除去:
當(dāng)存儲(chǔ)過程完成時(shí),將自動(dòng)除去在存儲(chǔ)過程中創(chuàng)建的本地臨時(shí)表。由創(chuàng)建表的存儲(chǔ)過程執(zhí)行的所有嵌套存儲(chǔ)過程都可以引用此表。但調(diào)用創(chuàng)建此表的存儲(chǔ)過程的進(jìn)程無法引用此表。
所有其它本地臨時(shí)表在當(dāng)前會(huì)話結(jié)束時(shí)自動(dòng)除去。
全局臨時(shí)表在創(chuàng)建此表的會(huì)話結(jié)束且其它任務(wù)停止對其引用時(shí)自動(dòng)除去。任務(wù)與表之間的關(guān)聯(lián)只在單個(gè) Transact-SQL 語句的生存周期內(nèi)保持。換言之,當(dāng)創(chuàng)建全局臨時(shí)表的會(huì)話結(jié)束時(shí),最后一條引用此表的 Transact-SQL 語句完成后,將自動(dòng)除去此表。
- 2 回答
- 0 關(guān)注
- 514 瀏覽
添加回答
舉報(bào)