2014-01-09 20 views

回答

29

本地臨時表

本地臨時表只提供給對 用戶當前連接;並在用戶從實例斷開 時自動刪除它們。本地臨時表名稱使用散列(「#」) 符號。

示例:本地臨時表

CREATE TABLE #LocalTempTable(
UserID int, 
UserName varchar(50), 
UserAddress varchar(150)) 

範圍僅與當前用戶的當前連接界定。

全局臨時表

全局臨時表名字以雙散列( 「##」)開始。一旦 該表已通過連接創建,如永久表,則 隨後可通過任何連接提供給任何用戶。一旦所有連接關閉,只能刪除 。

例子:

CREATE TABLE ##NewGlobalTempTable(
UserID int, 
UserName varchar(50), 
UserAddress varchar(150)) 

全局臨時表所有SQL Server連接可見。當你創建其中的一個,所有的用戶可以看到它

Vignesh你可以更多地瞭解這個here

4

`#table是指本地(可見只有誰創造了它的用戶)臨時表「。

'##表指向全局(對所有用戶都可見)臨時表。'

3

本地臨時表僅在創建者或引用表時與其SQL Server實例的同一連接期間纔可見。在用戶從SQL Server實例斷開連接後刪除本地臨時表。全局臨時表對任何用戶以及任何創建後的連接都是可見的,並且當引用表的所有用戶都從SQL Server實例斷開時,全局臨時表將被刪除。

Taken from here

More on this

3

這裏是SQL臨時表另一個快速遠眺,如果你想谷歌,你可以瞭解更多關於它

本地臨時表

本地臨時表僅適用於當前連接爲用戶提供服務;當用戶斷開實例時它們會自動刪除。本地臨時表名稱使用散列(「#」)符號。

全局臨時表

全局臨時表名以雙散列( 「##」)。一旦這個表已經由連接創建,就像一個永久表一樣,任何連接都可以讓任何用戶使用。它只能在所有連接關閉後才能刪除。

這兩個臨時表都存儲在tempdb的臨時文件夾中。每當我們創建一個臨時表時,它就會進入tempdb數據庫的Temporary文件夾。

具有特定ID的臨時表

enter image description here

當你創建臨時表,SQL服務器與特定的ID一起創建表的名稱,所以它不會與其他表的表名

primarily sourced from碰撞

+0

你的答案與我的 –

+2

非常相似,因爲**你和我**從同一篇文章中偷走了brotha;),但是我建議不要用我自己的詞,因爲'Abhijit Jana'原作者解釋得比我想的簡單得多;) – Kirk