sql >> データベース >  >> RDS >> Sqlserver

SQLServer2005と一時テーブルスコープ

    ローカル一時テーブル(#で始まる)はセッションに制限されています。同じユーザー/接続文字列からであっても、他のセッションはそれらを見ることができません。有効期間のルールは、ローカル一時テーブルがストアドプロシージャで作成されたかどうかによって異なります。

    • ストアドプロシージャで作成されたローカル一時テーブルは、プロシージャが終了すると削除されます。他のストアドプロシージャ、または呼び出しプロセスはそれらを見ることができません。
    • セッションが終了すると、他のローカル一時テーブルは削除されます。

    グローバル一時テーブル(##で始まる)はセッション間で共有されます。次の場合に削除されます:

    • それらを作成したセッションは終了します
    • そして他のセッションがそれらを参照していません

    このコマンドは、どの一時テーブルが存在するかを確認するのに便利です。

    select TABLE_NAME from tempdb.information_schema.tables 
    

    また、一時テーブルが存在するかどうかわからない場合は、これを削除すると便利です。

    if object_id('tempdb..#SoTest') is not null drop table #SoTest
    

    詳細については、このMSDNの記事を参照してください。



    1. Oracle SQLクエリを使用して、列のカンマ区切り値を行に分割します

    2. SQLServerで同じクエリを複数回実行する最も簡単な方法

    3. データベースモデルの現実化:ブロガーの課題

    4. 生産性を向上させるためにホームオフィスを整理する