1. ホーム
  2. sql

[解決済み] SQL Serverでストアドプロシージャの出力を変数に格納する方法

2023-08-25 06:49:06

質問

SQL Serverでストアドプロシージャを実行し、その出力を変数に代入したいのですが(単一の値を返します)?

どのように解決するのですか?

返したい情報の性質によります。

単一の整数値であれば return

 create proc myproc
 as 
 begin
     return 1
 end
 go
 declare @i int
 exec @i = myproc

整数値でない値や、スカラー値をいくつも持っている場合は、出力パラメータ

create proc myproc
  @a int output,
  @b varchar(50) output
as
begin
  select @a = 1, @b='hello'
end
go
declare @i int, @j varchar(50)
exec myproc @i output, @j output

データセットを返したい場合は insert exec

create proc myproc
as 
begin
     select name from sysobjects
end
go

declare @t table (name varchar(100))
insert @t (name)
exec myproc

カーソルを返すこともできますが、それはそれで恐ろしいので、例を挙げるのはやめておきます :)