7

私のサーバー コードでは、(#temp という名前の) 一時テーブルを作成し、いくつかのデータを挿入してから一時テーブルを削除します。複数のユーザーがコードのこのセクション (一時テーブルの作成) を同時に実行する場合、SQL Server 2008 はユーザーごとに一時テーブルを作成しますか、それとも 1 つの「グローバル」一時テーブルを作成しますか? そのテーブルが 1 つの場合、同じテーブルが複数回作成されたときに問題が発生すると思いますか?

4

1 に答える 1

8

MSDNから:

ローカルおよびグローバルの一時テーブルを作成できます。ローカル一時テーブルは現在のセッションでのみ表示され、グローバル一時テーブルはすべてのセッションで表示されます
...
複数のユーザーが同時に実行できるストアド プロシージャまたはアプリケーションでローカル一時テーブルが作成された場合、データベースエンジンは、さまざまなユーザーによって作成されたテーブルを区別できる必要があります。データベース エンジンDatabase Engine は、数値のサフィックスを各ローカル一時テーブル名に内部的に追加することによってこれを行います。tempdb の sysobjects テーブルに格納される一時テーブルの完全な名前は、CREATE TABLE ステートメントで指定されたテーブル名と、システムによって生成された数値サフィックスで構成されます。サフィックスを許可するために、ローカル一時名に指定される table_name は 116 文字を超えることはできません。

于 2012-07-04T07:11:42.007 に答える