sql >> Databasteknik >  >> RDS >> Sqlserver

Vad leder till detta konstiga SQL-beteende?

Din kod fungerar som förväntat. Proceduren kallar sig rekursivt .

Om du inte gör det vill du det, prova det här:

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

Om du vill för att använda rekursion måste du definiera ett basfall (AKA "exit condition") som gör att lagrad procedur lämnar rekursionsstacken.



  1. Använda bulk_update_mappings i SQLAlchemy för att uppdatera flera rader med olika värden

  2. mysql uppdatera en kolumn med en int baserat på beställning

  3. Entity Framework wizard kraschar på MySQL

  4. Hur får jag PHP att fungera med ADOdb och MySQL?