私は#記号使用して一時テーブルを作成する場合:このテーブルが配置されている一時テーブルはどこにありますか?
SELECT * INTO #temp FROM dbo.table
を?私はtempdbからこれを見つけることができません。
私は#記号使用して一時テーブルを作成する場合:このテーブルが配置されている一時テーブルはどこにありますか?
SELECT * INTO #temp FROM dbo.table
を?私はtempdbからこれを見つけることができません。
これらのテーブルは、tempDB
に作成されたですが、テーブル名は定義したとおりではありません。私の場合は
、私が取得:
#temp______________________________000000000003
はこれを試してみてください:
SELECT * INTO #temp FROM dbo.table
SELECT * FROM tempdb.sys.tables
あなたがちょうど作成したその一時テーブルのエントリが表示されるはずです....
テンポラリテーブルを宣言すると、SQL Severは固有のシステム名を提供するためにその名前にいくつかの追加文字を追加し、tempDBに格納しますe sysobjectsテーブル。論理名を使用してテンポラリテーブルをクエリすることはできますが、内部的にはSQL Serverが設定した正確な名前で知られています。
どうやってそれらを探していますか? 選択すると、データが取得されます。 しかし、テーブルはセッションでのみ使用できます。作成したユーザーのためだけです(グローバルな一時テーブルを持つことができます)。
これらはtemp dbに格納されます。
ローカルtempテーブルは、テーブル名の前にハッシュ(#)記号を使用して作成できます。
現在の接続でのみ表示されます。接続が切断されると、スコープも終了します。
2つの異なる接続で同じ名前のローカル一時表を同時に作成して使用することは可能です。
http://sqlnetcode.blogspot.com/2011/11/there-is-already-object-named-temp-in.html
続きを読むと...存在のために、たとえば、OBJECT_ID( 'tempdbの..#の一時')をテストします – gbn