Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Cosa porta a questo strano comportamento SQL?

Il tuo codice si sta comportando come previsto. La procedura si chiama ricorsivamente .

Se non lo vuoi, prova questo:

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

Se vuoi per utilizzare la ricorsione, devi definire un caso base (AKA "condizione di uscita") che farà uscire la stored procedure dallo stack di ricorsione.