DOBON.NETプログラミング掲示板過去ログ
SQLServer2005の一時テーブルについて
題名: SQLServer2005の一時テーブルについて
著者: agloomyroc
日時: 2009/07/30 9:29:43
ID: 25072
この記事の返信元:
(なし)
この記事への返信:
[25075]
Re[1]: SQLServer2005の一時テーブルについて
ひらぽん
2009/07/30 10:31:18
ツリーを表示
環境/言語:[WindowsXp]
分類:[.NET]
お世話になります。
現在、VB.NET2005とSQLServer2005にて開発をしています。
SQLServerストアドの中に毎回ローカル一時テーブルを
作成して処理した後、その一時テーブルを明示的に削除しています。
しかし処理完了後、システムデータベースtempdbの中を見ると、
指定したテーブル名と違う名前の一時テーブルが残ったままです。
例:#TB_Sampleという名前を指定したが、デバッグしてみると、
確かに処理の途中に一時テーブル#TB_Sampleができていて、
削除されたが、最後に違う名前のテーブルが生成されてしまいます。
→dbo.#7C8480AEやdbo.#7E6CC920など、のような名前パターンです。
このdbo.#7C8480AE や dbo.#7E6CC920 などはどうして生成されたか、
どなたかご教授をお願いします。
題名: Re[1]: SQLServer2005の一時テーブルについて
著者: ひらぽん
URL:
http://blogs.yahoo.co.jp/hilapon
日時: 2009/07/30 10:31:18
ID: 25075
この記事の返信元:
[25072]
SQLServer2005の一時テーブルについて
agloomyroc
2009/07/30 9:29:43
この記事への返信:
[25084]
Re[2]: SQLServer2005の一時テーブルについて
agloomyroc
2009/07/30 16:23:21
ツリーを表示
> しかし処理完了後、システムデータベースtempdbの中を見ると、
> 指定したテーブル名と違う名前の一時テーブルが残ったままです。
>
> 例:#TB_Sampleという名前を指定したが、デバッグしてみると、
> 確かに処理の途中に一時テーブル#TB_Sampleができていて、
> 削除されたが、最後に違う名前のテーブルが生成されてしまいます。
> →dbo.#7C8480AEやdbo.#7E6CC920など、のような名前パターンです。
>
> このdbo.#7C8480AE や dbo.#7E6CC920 などはどうして生成されたか、
> どなたかご教授をお願いします。
デッドロックがらみによる削除失敗ぽいような気が・・・
英文ですが、以下に情報あります。
http://support.microsoft.com/kb/131548/en-us
題名: Re[2]: SQLServer2005の一時テーブルについて
著者: agloomyroc
日時: 2009/07/30 16:23:21
ID: 25084
この記事の返信元:
[25075]
Re[1]: SQLServer2005の一時テーブルについて
ひらぽん
2009/07/30 10:31:18
この記事への返信:
(なし)
ツリーを表示
> デッドロックがらみによる削除失敗ぽいような気が・・・
> 英文ですが、以下に情報あります。
> http://support.microsoft.com/kb/131548/en-us
ひらぽんさん、アドバイスありがとうございます。
上記のサイトを見てみましたが、いまいち意味よく分かりませんでした。
それに、SQLServer側で下記のように直接試してみました。↓↓↓
・ストアド中の処理を全部コピーして、BEGIN〜ENDの中に入れて、
SQLServer側で直接実行してみたら、上記のdbo.#7C8480AEや
dbo.#7E6CC920などのような一時テーブルが生成されません。
・SQLServer側で「EXEC ストアド名」を実行してみたら、
上記のようなテーブルが生成されてしまいます。
これはこれは、どういうことかよく分かりません。
そもそもストアドの中でローカル一時テーブルを作成した場合、
処理のあと、上記のようなテーブルが生成されることは正常なのでしょうか???
ひらぽんさん、どなたか、
是非ご知恵をお貸しください。
DOBON.NET
|
プログラミング道
|
プログラミング掲示板
分類:[.NET]
お世話になります。
現在、VB.NET2005とSQLServer2005にて開発をしています。
SQLServerストアドの中に毎回ローカル一時テーブルを
作成して処理した後、その一時テーブルを明示的に削除しています。
しかし処理完了後、システムデータベースtempdbの中を見ると、
指定したテーブル名と違う名前の一時テーブルが残ったままです。
例:#TB_Sampleという名前を指定したが、デバッグしてみると、
確かに処理の途中に一時テーブル#TB_Sampleができていて、
削除されたが、最後に違う名前のテーブルが生成されてしまいます。
→dbo.#7C8480AEやdbo.#7E6CC920など、のような名前パターンです。
このdbo.#7C8480AE や dbo.#7E6CC920 などはどうして生成されたか、
どなたかご教授をお願いします。