42

TSQL のテーブル名「#mytable」と「mytable」の違いは何ですか? 多くのカスタム プロシージャで、テーブル名が「#」で始まるのを目にします。

4

2 に答える 2

59

これらは、それらを作成したプロセス専用のローカル一時テーブルです。

于 2012-08-01T19:08:54.973 に答える
33

#mytable は一時テーブルで、mytable は具体的なテーブルです。

SQL Server の一時テーブルについて詳しく読むことができます。

これらは、バッチまたはプロシージャ内でデータを処理するときに、中間結果のワークスペースを提供するために最も頻繁に使用されます。また、テーブル値関数からテーブルを渡したり、ストアド プロシージャ間でテーブル ベースのデータを渡したり、最近ではテーブル値パラメーターの形式で、読み取り専用テーブル全体をアプリケーションから SQL Server ルーチンに送信したりするためにも使用されます。 、または読み取り専用の一時テーブルをパラメーターとして渡します。使用が終了すると、それらは自動的に破棄されます。

一時テーブルには、ローカル一時テーブル (# で始まる)、グローバル一時テーブル (## で始まる)、永続的な一時テーブル (TempDB で始まる..)、テーブル変数 ((@ で始まる) など、さまざまな種類があります。 )

于 2012-08-01T19:07:23.987 に答える