SQLServer ストアドプロシージャの結果をSELECTする方法

更新:2018.6.7

目次

一時テーブルを利用する

手っ取り早い方法は、一時テーブルを作成することです。

一時テーブルを作らないと行けないので、手間がかかるデメリットがあります。

ストアドプロシージャの実行結果も確認しながらコーディングする場合は、一時テーブルを作成することによる副産物で方の確認が出来ることと、ストアドプロシージャの実行結果を確認しやすいメリットがあります。

CREATE TABLE #temp (
    col char(1)
)

INSERT INTO #temp EXEC sp_test

SELECT
    *
FROM
    #temp
WHERE
    kind = 1

ユーザ定義関数を使う

少し手間を掛けて良いなら、ユーザ定義関数を作成する方法があります。

SELECTする処理はシンプルになりますが、ユーザ定義関数を作らないと行けないのがデメリットです。

自由にユーザ定義関数を作って良い現場ならこの方法もありです。

一度作れば他のSELECTで使用するときもシンプルに書けるので再利用がしやすいです。

create function funcA
returns @res TABLE (
    kubun char(1)
) as
begin
    insert @res select col
    from tablea as t with(nolock)
    where kind = @kubun;
return;
end;
go

一時テーブルかユーザ定義関数か

過去に作成したストアドプロシージャが存在していて、それを利用したい場合は、ユーザ定義関数を同じ仕様にしなければならないので、一時テーブルを利用する方法をおすすめします。

SQLServer関連記事










これからブログなどのサイトを作りたいと思っている人は、お名前.comでのドメイン取得がオススメです。

■□━━ 急げ、ドメインは早い者勝ち! ━━□■
     ■お名前.com

アマゾンの2019年本屋大賞一覧

そして、バトンは渡された
ひと
ベルリンは晴れているか
熱帯
ある男

楽天市場のおすすめ商品一覧

お金2.0 新しい経済のルールと生き方 [ 佐藤航陽 ]
全部レンチン!やせるおかず 作りおき 時短、手間なし、失敗なし
「読む力」と「地頭力」がいっきに身につく 東大読書 [ 西岡 壱誠 ]