次のようなことができるようにしたい: ストアド プロシージャは常に数値を返す (tinyint)
INSERT INTO CustomerSelections
([draw_date]
,[val1]
,[val2]
,[val3]
,[val4]
,[val5]
,[val6])
VALUES
(
'2013-07-05'
,EXEC GenerateRandomNumbers 1, 49, 1, 0
,EXEC GenerateRandomNumbers 1, 49, 1, 0
,EXEC GenerateRandomNumbers 1, 49, 1, 0
,EXEC GenerateRandomNumbers 1, 49, 1, 0
,EXEC GenerateRandomNumbers 1, 49, 1, 0
,EXEC GenerateRandomNumbers 1, 49, 1, 0
)
しかし、そこに値を取得する方法がわかりませんか?
更新: 私はこのようなことを試しました:
渡された値を次のストアド プロシージャに入れます。
ALTER PROCEDURE [dbo].[GetUniqueLottoNumber]
AS
BEGIN
DECLARE @return_value int
EXEC @return_value = [dbo].[GenerateRandomNumbers]
@StartNumber = 1,
@EndNumber = 49,
@QuantityToOutput = 1,
@AllowDuplicates = 0
END
次に、これを行いました:
CREATE TABLE #tmp (Number TINYINT)
DECLARE @q nvarchar(4000)
DECLARE @return_value int
SET @q = 'EXEC @return_value = [dbo].[GetUniqueLottoNumber]';
INSERT INTO #tmp (Number)
EXEC sp_executesql @q
しかし、挿入値に@qを入れると気に入りません。