次のストアド プロシージャを検討してください。
create procedure [dbo].[MyTest] ( @p_SqlStatement nvarchar(max) )
as
begin
exec sp_executesql @p_SqlStatement
if @@ROWCOUNT = 1
begin
select 1;
end
else if @@ROWCOUNT <> 1
begin
select 0;
end
end
このストアド プロシージャは現在、2 つのデータセットを返します。1 つはexec sp_executesql @p_SqlStatement
データを含み、もう 1 つは 1 または 0 です。最初のデータセットを抑制する方法はありますか? つまり、このストアド プロシージャが 1 または 0 のみを返す可能性はありますか?
RAISERROR( 'MyError', 18, 1 )
の直後に追加してexec sp_executesql @p_SqlStatement
から、catch ブロックで何か他のものを選択しようとしましたが、最初の結果セットは常にストアド プロシージャの呼び出し元に返されます...