創建臨時表
方法一:
create table #臨時表名(字段1 約束條件,
字段2 約束條件,
.....)
create table ##臨時表名(字段1 約束條件,
字段2 約束條件,
.....)
方法二:
select * into #臨時表名 from 你的表;
select * into ##臨時表名 from 你的表;
注:以上的#代表局部臨時表,##代表全局臨時表
查詢臨時表
select * from #臨時表名;
select * from ##臨時表名;
刪除臨時表
drop table #臨時表名;
drop table ##臨時表名;
drop table #Tmp --刪除臨時表#Tmp 相關例子: Declare @Wokno Varchar(500) --用來記錄職工號
SQL 語句使用 CREATE TABLE 語句中為 table_name 指定的名稱引用臨時表: CREATE TABLE #MyTempTable (cola INT PRIMARY KEY) 如果本地臨時表由存儲過程創建或由多個用戶同時執行的應用程序創建,則 SQL Server 必須能夠區分由不同用戶創建的表。為此,SQL Server 在內部為每個本地臨時表的表名追加一個數字后綴。存儲在 tempdb 數據庫的 sysobjects 表中的臨時表,其全名由 CREATE TABLE 語句中指定的表名和系統生成的數字后綴組成。為了允許追加后綴,為本地臨時表指定的表名 table_name 不能超過 116 個字符。 除非使用 DROP TABLE 語句顯式除去臨時表,否則臨時表將在退出其作用域時由系統自動除去: 當存儲過程完成時,將自動除去在存儲過程中創建的本地臨時表。由創建表的存儲過程執行的所有嵌套存儲過程都可以引用此表。但調用創建此表的存儲過程的進程無法引用此表。
CREATE PROCEDURE Test2 下面是結果集: (1 row(s) affected) Test1Col (1 row(s) affected) Test2Col 當創建本地或全局臨時表時,CREATE TABLE 語法支持除 FOREIGN KEY 約束以外的其它所有約束定義。如果在臨時表中指定 FOREIGN KEY 約束,該語句將返回警告信息,指出此約束已被忽略,表仍會創建,但不具有 FOREIGN KEY 約束。在 FOREIGN KEY 約束中不能引用臨時表。 考慮使用表變量而不使用臨時表。當需要在臨時表上顯式地創建索引時,或多個存儲過程或函數需要使用表值時,臨時表很有用。通常,表變量提供更有效的查詢處理。 |