SQL Server

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

投稿日:2013/02/13 更新日:

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

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

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

これを

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

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

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

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

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

すると

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

当サイトのおすすめ記事

パソコン 1

初心者でも失敗しないレンタルサーバーの選び方ですが、最近ではブログを立ち上げて、そこから広告収入を得る「アフィリエイト」が随分一般的になりました。 私の周りでも実際にやっている人が多くいます。 アフィ ...

プログラミング 2

SQLでIFを書けばWHERE句の内容を変えて検索できますが、条件ごとに同じようなSQLを 複数回書くのは面倒なので、1行で分岐できないかと言う事でSQLを作って見ました。 SQLでIFを使わずに条件 ...

SQLServer 3

SQLServerで発生するエラーコードをSQLで取得する SQLServerで発生したエラーコードの内容を メッセージが定義されているテーブルから取得します。 エラーコードを取得するSQL SQLs ...

4

SQLServerでは「ユーザー定義型」と呼ばれる独自のテーブル型をした戻り値を返す関数を作成することができます。 その作り方と使い方を解説します。 SQLServerでテーブル型を戻り値とする関数を ...

5

アフィリエイトでいきなり成果を出すのは難しいです。 でも、成果がないとレンタルサーバー代やドメイン代がペイできません。 しかも長い間、結果がでないとやる気もなくなってしまいます。 そういったことを防ぐ ...

-SQL Server
-, , , , ,

Copyright© ソフトウェア開発日記 , 2018 All Rights Reserved.