2017-04-13 6 views
0

をドロップしません。私がtemp dbを見ると、その名前はまったく違うものです...IF EXISTSは、これはおそらく、マルチパートの質問である一時テーブルに

#tablename___________________________________________00000001069F 

明らかに、drop文はこれで動作しません。上記のステートメントでtempテーブルが削除されることを確認するにはどうすればよいですか。

また、tempテーブル作成ステートメントの前に "USE dbName"を使用すると、tempdbテーブルまたはdbNameデータベースにtempテーブルが作成されますか?デフォルトは常にtempDbですか?

ありがとう、 RV。

+0

ここでは、ドロップ文をここに掲載させません。おそらく注射攻撃を防ぐためです。しかし問題はない。 – rvphx

+1

Object_ID – jradich1234

+0

のテーブル名の後ろに 'aがありません'。このページのコードを編集している間に起こった可能性があります。しかし、それは問題ではありません。 – rvphx

答えて

5

使用は

OBJECT_ID('tempDB..#tablename') 

ない

OBJECT_ID('temp..#tablename') 

を使用する必要があります一時テーブルはまだtempdbのか、DBNAMEデータベース内に作成されますでしょうか?デフォルトは常にtempDbですか?

常にTEMPDBに作成されます

一時テーブル..あなたが_____00000001069Fのような名前を見ている理由

理由は、一時テーブルは、セッション固有であり、SQLが割り当てる名前の世話をするという事実によるものであるYES同じ名前の並列セッションで使用されている場合でも、名前は競合しません。

詳細については、DBA.SEでこの回答をご覧ください。詳細はTemp Tablesセクションを参照してください。

What's the difference between a temp table and table variable in SQL Server?

+0

一重引用符がありません。 'OBJECT_ID(' tempDB ..#tablename ')' – jradich1234

+0

@ jradich1234:ありがとう、編集済み – TheGameiswar

+0

クールです。スクリプトの最後にdropステートメントを追加して、きれいな出口を作り、最後にメモリを解放します。その唯一のセッションに基づいている場合は、最初にチェックする必要はありません。説明にもう一度感謝します。 – rvphx

関連する問題