あなたのコードは期待どおりに動作しています。手順は再帰的に 自分自身を呼び出しています .
しない場合 それが必要な場合は、これを試してください:
ALTER PROCEDURE dbo.Test
@Value int = null
AS
BEGIN
IF (IsNull(@Value, '') = '')
SELECT 'I am NULL!'
ELSE
SELECT 'I am ' + CONVERT(varchar(20), @Value)
END
GO
EXEC dbo.Test
必要な場合 再帰を使用するには、基本ケース を定義する必要があります (別名「終了条件」) ストアド プロシージャを再帰スタックから終了させます。