Je code gedraagt zich zoals verwacht. De procedure noemt zichzelf recursief .
Als u niet wil je dat, probeer dan dit:
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
Als je wilt om recursie te gebruiken, moet je een basisscenario definiëren (ook bekend als "exit condition") waardoor de opgeslagen procedure de recursiestapel verlaat.