2014-01-09 7 views
25

MSSQLサーバーの#temptableと## TempTableの違いを説明してください。私はこれについて調べたが、できなかった。#temptableと## TempTableの違いは?

この

+0

返信いただきありがとうございます。私は今、これについて明確な考えを持っています –

+1

1つはCamelCase、1つは小文字です – DaveBoltman

答えて

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は(それを作成したユーザーのみに見える)ローカルの一時テーブルを参照します。」

'## tableは、グローバル(すべてのユーザーが参照可能)テンポラリテーブルを参照しています。

3

ローカル一時テーブルは、SQL Serverのインスタンスへの同じ接続中に作成者のみが、そのテーブルを最初に作成または参照したときに表示されます。ローカル一時テーブルは、ユーザーがSQL Serverのインスタンスから切断した後に削除されます。グローバル・テンポラリ・テーブルは、作成された後のすべてのユーザおよび接続に表示され、テーブルを参照しているすべてのユーザがSQL Serverのインスタンスから切断されると削除されます。

Taken from here

More on this

3

についての詳細を知ることができますは、Googleならば、あなたはそれ

についての詳細を知ることができ、SQL一時表の別の迅速な見落としですローカル温度テーブル

ローカルテンポラリテーブルは、現在のconnecユーザーのためのユーザーがインスタンスから切断すると自動的に削除されます。ローカルテンポラリテーブル名がハッシュ記号( "#")で囲まれています。

グローバル一時テーブル

グローバル・テンポラリ・テーブル名は、二重ハッシュ( "##")で始まります。このテーブルが接続によって作成されると、永続的なテーブルのように、任意のユーザーが任意の接続で使用できるようになります。すべての接続が終了した後にのみ削除できます。

両方とも、一時テーブルはtempdbの一時フォルダ内に格納されます。一時テーブルを作成するたびに、tempdbデータベースの一時フォルダに移動します。

enter image description here

あなたは一時テーブルを作成

は 特定のIDを持つ

一時表は、SQLサーバは、特定のIDと一緒にテーブル名を作成し、それは文句を言わない、別の表の表名

primarily sourced fromと衝突します

+0

あなたの答えは私の –

+2

と非常によく似ています。**あなたと私**は同じ記事のbrotha;を盗んでしまったからです。)しかし、私は自分の言葉の代わりに、「Abhijit Jana' – Kirk

関連する問題