sql >> Database >  >> RDS >> Sqlserver

Wat leidt tot dit vreemde SQL-gedrag?

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.



  1. Verbinding maken met Microsoft Access in IRI Workbench

  2. c# Problemen met mysql:Onjuiste tekenreekswaardecode 1366 voor kolom in rij 1

  3. Hoe een identiteitskolom aan tabel toe te voegen door TSQL en GUI in SQL Server - SQL Server / T-SQL-zelfstudie, deel 40

  4. MySQL-query voor het verkrijgen van telling per uur