sql的暫時表應用小結。本站提示廣大學習愛好者:(sql的暫時表應用小結)文章只能為提供參考,不一定能成為您想要的結果。以下是sql的暫時表應用小結正文
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
關於sql中暫時表的性命周期
1.部分暫時表(#開首)只對以後銜接有用,以後銜接斷開時主動刪除。
2.全局暫時表(##開首)對其它銜接也有用,在以後銜接和其他拜訪過它的銜接都斷開時主動刪除。
3.不論部分暫時表照樣全局暫時表,只需銜接有拜訪權限,都可以用drop table #Tmp(或許drop table ##Tmp)來顯式刪除