背景
・ストアドプロシージャを実行したら、戻り値が「-6」だった
・「-6」が何を意味するのか調査したが、見つけることができなかった
・見つけられなかったということは(公式ドキュメントに無い?)、暗に「戻り値は使うな」と
公式が言っている可能性がある。「OUTPUTパラメータを使え」と言っている能性がある
調査結果
・正常終了の場合、デフォルトの戻り値は「0」
・例外が発生し例外処理(Try~Catch)を実施している場合、デフォルトの戻り値は「-6」
サンプルプログラム(正常終了)
CREATE PROCEDURE [dbo].[ReturnValueProcedure]
--引数と戻り値の宣言
AS
BEGIN
--トランザクション開始
BEGIN TRY
RETURN
END TRY
BEGIN CATCH
RETURN 12345 --例外発生時は返り値が12345となるようにする
END CATCH
END
GO
結果(正常終了)
●戻り値は「0」
サンプルプログラム(例外発生で例外処理を実施)
CREATE PROCEDURE [dbo].[ReturnValueProcedure]
--引数と戻り値の宣言
AS
BEGIN
--変数の宣言
DECLARE
@intTemp int
--トランザクション開始
BEGIN TRY
--int型の変数へ文字列を代入によりエラー発生
SET @intTemp = 'eiueo'
RETURN 12345 --正常終了時は返り値が12345となるようにする
END TRY
BEGIN CATCH
RETURN
END CATCH
END
GO
結果(例外発生で例外処理を実施)
●戻り値は「-6」
補足
「RETURN 12345」等の記述により、戻り値を任意の値へ変更可能