SQL server 中的臨時表

iSQlServer發表於2009-12-24

臨時表分為本地和全域性兩種。

本地臨時表的名稱都是以“#”為字首,只有在本地當前的使用者連線中才是可見的,當使用者從例項斷開連線時被刪除。

全域性臨時表的名稱都是以“##”為字首,建立後對任何使用者都是可見的,當所有引用該表的使用者斷開連線時被刪除。

臨時表儲存在SQL server的tempdb資料庫中,無論是本地的還是全域性的,當資料庫重新啟動,tempdb將會被重建,這些表也都會消失

本地臨時表只對當前session有效,其他session不能訪問到,隨著當前session的結束而自動銷燬。

全域性臨時表不以Session結束為銷燬時刻。除非手動刪除,或者重新啟動資料庫,否則將一直存在。並且能被所有的使用者訪問和操作,不能進行許可權的管理。所以在涉及重要資訊的資料是,應避免使用這種臨時表。但是也有它的好處,可以儲存一些公共的資訊,方便所有使用者訪問。

使用者在會話中可以通過DROP TABLE命令提前銷燬臨時表

建立臨時表:

 

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--&gtcreate table #temp
(
id
int not null,
name
char(10),
sex
char(2),
age
int
)
insert into #temp(id,name,sex,age) values(1,'lilei','',21)

 

 

把從一個表中查詢到的資料填充到臨時表中(該臨時表之前必須不存在,如果存在drop掉)

 

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--&gtselect * into #temp1 from borrower

 

 

 把一個表中查詢到的資料填充到另一個表中(該表必須不存在)

 

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--&gtselect * into temp1 from borrower

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-623608/,如需轉載,請註明出處,否則將追究法律責任。

相關文章