- PR -

ストアド内での結果セットの扱い方

1
投稿者投稿内容
ともこ
大ベテラン
会議室デビュー日: 2007/09/14
投稿数: 111
投稿日時: 2008-02-06 08:08
いつもアドバイスありがとうございます、宜しくお願いします。

現在、VB(6.0)からSQLサーバーA(2000SP4)のリンクサーバー機能を使用して別のSQLサーバーB(2000SP4)からデータを取得するといった開発を行なっています。
SQLサーバーAに記述したストアド内で以下のような事は可能でしょうか?

テーブルXからデータを取得し結果セットを受け取る。その結果セットを利用し、また別テーブルYから結果セットを受け取る。その後2つの結果セットを組み合わせ1つのデータとする。

この場合、クエリを2回実行しているので2回目のクエリを実行した時点で1回目の結果セットは消えてしまいますよね?その為、1回目の結果セットを一時テーブルなどへ保存する等の対応を行うしかないのでしょうか?
(実行イメージ)
クエリ1回目の実行
   ↓
一時テーブルへのセット
   ↓
クエリ2回目の実行
   ↓
カーソルを使用し、一時テーブルへのセット
(1回目と2回目を結合した形にする)
Mr.T
会議室デビュー日: 2007/06/06
投稿数: 1
投稿日時: 2008-02-06 12:43
Mr.Tです、こんにちは。

>テーブルXからデータを取得し結果セットを受け取る。その結果セットを利用し、また別テーブルYから結果セットを受け取る。その後2つの結果セットを組み合わせ1つのデータとする。

単純にテーブル間の連結で実現できないのであれば、
一時テーブルを使うのが手っ取り早いように思います。

_________________
------------------------
特攻野郎Aチームじゃないよ

Mr.T@わんくま同盟
あしゅ
ぬし
会議室デビュー日: 2005/08/05
投稿数: 613
投稿日時: 2008-02-06 20:24
SQL Serverで実現可能であるかは知りませんが、
トランザクション隔離レベルをRepeatableRead
以上に設定すればよいのではないでしょうか。
1

スキルアップ/キャリアアップ(JOB@IT)