21

SQL サーバーは、非アクティブ状態が一定時間続くとこれらを自動的に削除しますか? それとも、自動的に削除することを心配する必要がありますか? その場合、パージするテーブルのリストを照会するにはどうすればよいですか?

4

4 に答える 4

27

接続が終了すると一時テーブルが削除されるという事実にもかかわらず、確実にクリーンアップが行われたことを確認するために、そのようなテーブルを明示的に削除することは依然として良い方法であると考えられています。

たとえば、プラットフォームが接続プーリングを使用している場合、つまり接続がドロップされない場合、一時テーブルもまだ存在しますか?

一時テーブルの存在を確認するには、次のステートメント/チェックを使用できます。

if object_id('tempdb..##temptbl') is not null
begin
    drop table ##temptbl
end
于 2009-03-27T05:58:04.770 に答える
16

SQL Server への接続を閉じると、ローカル一時テーブルが破棄されます。通常の状況では、手動でパージする必要はありません。永続的な接続または接続プーリングを維持している場合は、使用後すぐに一時テーブルを削除する習慣を身につけたいと思うかもしれません。

一方、グローバル一時テーブルは、特定のデータベース内のすべてのユーザーに表示されるため、それらを参照する最後の接続とともに破棄されます。

于 2009-03-27T04:19:19.487 に答える
4

質問の 2 番目の部分への回答として、削除するテーブルのリストをクエリするには、次のクエリを試してください。

SELECT * FROM tempdb..sysobjects

これにより、現在のグローバル一時テーブルがすべて一覧表示されます

于 2011-04-25T14:46:25.070 に答える