Din kode opfører sig som forventet. Proceduren kalder sig selv rekursivt .
Hvis du ikke ønsker det, prøv dette:
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
Hvis du vil for at bruge rekursion skal du definere et basecase (AKA "exit condition") som vil få lagret procedure til at forlade rekursionsstakken.