創(chuàng)建臨時(shí)表 方法一: create table #臨時(shí)表名(字段1 約束條件, 字段2 約束條件, .....) create table ##臨時(shí)表名(字段1 約束條件, 字段2 約束條件, .....) 方法二: select * into #臨時(shí)表名 from 你的表; select * into ##臨時(shí)表名 from 你的表; 注:以上的#代表局部臨時(shí)表,##代表全局臨時(shí)表 查詢臨時(shí)表 select * from #臨時(shí)表名; select * from ##臨時(shí)表名; 刪除臨時(shí)表 drop table #臨時(shí)表名; drop table ##臨時(shí)表名; drop table #Tmp --刪除臨時(shí)表#Tmp 相關(guān)例子: Declare @Wokno Varchar(500) --用來記錄職工號(hào)
SQL 語句使用 CREATE TABLE 語句中為 table_name 指定的名稱引用臨時(shí)表: CREATE TABLE #MyTempTable (cola INT PRIMARY KEY) 如 果本地臨時(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)程無法引用此表。
CREATE PROCEDURE Test2 下面是結(jié)果集: (1 row(s) affected) Test1Col (1 row(s) affected) Test2Col 當(dāng) 創(chuàng)建本地或全局臨時(shí)表時(shí),CREATE TABLE 語法支持除 FOREIGN KEY 約束以外的其它所有約束定義。如果在臨時(shí)表中指定 FOREIGN KEY 約束,該語句將返回警告信息,指出此約束已被忽略,表仍會(huì)創(chuàng)建,但不具有 FOREIGN KEY 約束。在 FOREIGN KEY 約束中不能引用臨時(shí)表。 考慮使用表變量而不使用臨時(shí)表。當(dāng)需要在臨時(shí)表上顯式地創(chuàng)建索引時(shí),或多個(gè)存儲(chǔ)過程或函數(shù)需要使用表值時(shí),臨時(shí)表很有用。通常,表變量提供更有效的查詢處理。 |
聯(lián)系客服