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

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

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

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

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

これを

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

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

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

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

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

すると

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

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

関連記事

SQLサーバ

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

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

記事を読む

SQLServerでsp_renameを使ってテーブルの列名を変更する

SQLServerで列名を変更するには sp_renameを使って列名を変更 SQLServ

記事を読む

SQLサーバ

SQLServerでROW_NUMBER()を使って連番を採番する

ROW_NUMBER()で連番を取得する SQLServerでROW_NUMBER()関数を使うと

記事を読む

SQLでCASE~WHENを使ってみる

SQLでCASE~WHENを使う SQLでCASE~WHENを使うとIF文で分岐して実行文を分ける

記事を読む

SQL Server2008で導入された[date/time/datetime2/datetimeoffset]型

SQL Server2008では新しい日付/時刻データ型 date/time/datetime2/

記事を読む

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

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

記事を読む

SQLで存在しない行を生成し固定行数で処理したい時に役立つ方法

帳票データなどで登録されているデータ数に左右されず、 固定行数でデータを取得したい場合があります。

記事を読む

SQLServerのダミーテーブル

SQLServerでダミーテーブルを使う データベースサーバから現在時刻などを取得する場合など

記事を読む

SQLServerでTrue,FalseのようなBoolean型をあつかう

SQLServerでBoolean型を扱う SQLServerには「Boolean」という型は

記事を読む

SQLServer上にあるストアドプロシージャーの更新日時を取得する。

ストアドプロシージャーの更新日時を取得する ここ数日間で変更されたSQLServer上にあるストア

記事を読む

SQLServer
SQLで検索結果を縦横変換する

SQLで検索結果を縦横変換する SQLで取得した各行を一定のくくりで

テーブル型を戻り値とする関数の作成方法

SQLServerでテーブル型を戻り値とする関数を作る SQLSer

SQLServer
SQLServerで取得した値を3ケタずつのカンマ区切りの表示に変更する方法です

SQLServerで取得した値を3ケタずつのカンマ区切りの表示に変更す

SQLServerのバージョン番号を取得する方法

SQLServerのバージョン番号を取得する SQLServerのバ

SELECTでUNIONは複数個使える

SELECTでの複数のUNIONの使い方 SELECTでUNIONは

→もっと見る



PAGE TOP ↑