2 つのパラメータを受け取るストアド プロシージャがあります。 Server Management Studio で正常に実行できます。期待どおりの結果が表示されます。ただし、戻り値も返されます。
この行が追加されました。
SELECT 'Return Value' = @return_value
MATLAB からこのストアド プロシージャを呼び出しており、返されるのは true または false のみであるため、ストアド プロシージャでは戻り値ではなく結果に表示されるテーブルを返すようにしたいと思います。
ストアド プロシージャで何を返すかを指定する必要がありますか? その場合、4 つの列 (varchar(10)、float、float、float) のテーブルをどのように指定すればよいですか?
ベストアンサー1
プロシージャはテーブルをそのまま返すことはできません。ただし、次のようにプロシージャ内のテーブルから選択し、それをテーブル (またはテーブル変数) に送ることができます。
create procedure p_x
as
begin
declare @t table(col1 varchar(10), col2 float, col3 float, col4 float)
insert @t values('a', 1,1,1)
insert @t values('b', 2,2,2)
select * from @t
end
go
declare @t table(col1 varchar(10), col2 float, col3 float, col4 float)
insert @t
exec p_x
select * from @t