sql的臨時表使用小結

轉載地址:http://www.cnblogs.com/jeffwongishandsome/archive/2009/08/05/1526466.html

數據表的創建方法
1、創建方法:
方法一:
create table TempTableName

select [字段1,字段2,...,] into TempTableName from table 
方法二:
create table tempdb.MyTempTable(Tid int)

臨時數據表的創建相關說明:
(1)、臨時表其實是放在數據庫tempdb裏的一個用戶表;
(2)、TempTableName必須帶“#”,“#"可以是一個或者兩個,以#(局部)或##(全局)開頭的表,這種表在會話期間存在,會話結束則自動刪除;
(3)、如果創建時不以#或##開頭,而用tempdb.TempTable來命名它,則該表可在數據庫重啓前一直存在。

2、手動刪除
drop table TempTableName
說明:

 DROP  TABLE 語句顯式除去臨時表,否則臨時表將在退出其作用域時由系統自動除去:     
(1)、當存儲過程完成時,將自動除去在存儲過程中創建的本地臨時表。由創建表的存儲過程執行的所有嵌套存儲過程都可以引用此表。但調用創建此表的存儲過程的進程無法引用此表;
(2)、所有其它本地臨時表在當前會話結束時自動除去;
(3)、全局臨時表在創建此表的會話結束且其它任務停止對其引用時自動除去。任務與表之間的關聯只在單個Transact-SQL語句的生存週期內保持。換言之,當創建全局臨時表的會話結束時,最後一條引用此表的Transact-SQL語句完成後,將自動除去此表。


3、示例代碼
(1)創建


use testdb

--創建局部臨時表 
create table #tmpStudent(Tid int,Name varchar(50),Age int)

insert into #tmpStudent values('xiaowang',25)

select * from #tmpStudent

--創建局部臨時表 另一種寫法
select *  into #tmpStudent from student

select * from #tmpStudent
第二種創建方法:

create table tempdb.MyTempTable(Tid int--有對應權限纔可以這麼寫
(2)刪除
drop table #tmpStudent

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章