SQLServerで作ったテンポラリテーブルが見つからず無効になってしまう

公開日: : 最終更新日:2013/11/26 SQL Server , , , , ,

SQLServerでテンポラリテーブルを利用して処理を行う時に
「オブジェクト名 ‘#tmp_table’ が無効です」と作ったはずのテンポラリテーブル
見つからず無効になってしまい、上手くいかなかったので、その暫定的な解決方法の
メモ的な投稿です。

準備として下記のようなデータが入ったテーブル(account_table)を作成します。

次にこのテーブルからpriceが30000以上のものを抜き出して表示するストーアドプロシジャを
作成します。

これを

と実行すると取得できるのかと思いきや

とエラーになってしまいます。

何故か作成したテンポラリテーブルが見つからないようです。

どうやら「EXEC()」でまたがっていると作ったテンポラリテーブル
別物になっているように思えます。

そこで苦肉の策で2つのSQLを「;」で連結して、1つの「EXEC()」で
実行して見ました。

すると

とりあえずは無事取得できました。
「EXEC()」は別のセッションになるのかな?
別セッションなあばテンポラリテーブルも別・・・なんでしょう。
とりあえずはこれで逃げておこう。
後日、詳細の調査が必要です。

スポンサーリンク
スポンサーリンク
  • このエントリーをはてなブックマークに追加
  • 13 follow us in feedly

関連記事

ALTER TABLEで既存のテーブルのプライマリーキー(主キー)を変更する

ALTER TABLEで既存のテーブルのプライマリーキー(主キー)を変更する ALTER TA

記事を読む

SQLサーバ

連番中で 「歯抜け」の番号を見つけ出すSQL

テーブル内の連番の歯抜け番号を探す よくある処理でテーブルに設定されている連番の中で 「歯抜け」

記事を読む

SQLでビット演算を行う

SQLServerでのビット演算 SQLServerのT-SQLでビット演算を使って、該当のデータ

記事を読む

集計関数COUNT()でのNULLの扱い

集計関数COUNT()でのNULLの扱いは注意が必要 集計関数のCOUNT()は条件にマッチす

記事を読む

テーブルから列を削除する「ALTER TABLE テーブル名 DROP COLUMN 削除する列名」

既存のテーブルから指定した列を削除する 既存のテーブルで不要になった列を削除する方法です。

記事を読む

CASE WHEN を使って条件ごとの件数を取得する

CASE WHEN を使って条件ごとの件数を取得する あるテーブルに状態を表すフラグを持たせること

記事を読む

DATENAME関数を使って日付を取得する。

DATENAME関数を使って日付取得 SQLServerでDATENAME関数を使って日付を取得し

記事を読む

SQLで月曜日始まりのカレンダー作成

カレンダー作成 SQLServerで月曜日始まりの1週間分のカレンダーを作成します。 実行す

記事を読む

SQL Server-SQLでテーブル仕様書になるものネタを取ってみる

SQLでテーブル仕様書になるものネタを取ってみます。 これを実行すると [crayo

記事を読む

SQLサーバ

DATETIMEデータ型のミリ秒丸め現象

DATETIMEデータ型のミリ秒には丸めがあります SQLServerのDATETIMEデータ

記事を読む

TOP句で変数を使ってSQLを1行にする

TOP句で変数を使ってSQLを1行にする TOP句を使って複雑なSQ

SQL Server-ストアドプロシジャーのソースを表示する2

過去の投稿「SQL Server-ストアドプロシジャーのソースを表示す

SQLServer
bcpコマンドを使ってBULK INSERT用のフォーマットファイルを出力する

bcpコマンドを使ってBULK INSERT用のフォーマットファイルを

SQLで指定された年月日の月末日付を取得する

指定された年月日の月末日付を取得 SQLserverには指定され

2つのテーブルを結合して値を更新するSQL

2つのテーブルを結合して値を更新するSQL テーブルAの値をテーブル

→もっと見る



PAGE TOP ↑