Mega Code Archive

 
Categories / MSSQL / Store Procedure Function
 

A Recursion

6>    CREATE PROC spFactorial 7>    @ValueIn int, 8>    @ValueOut int OUTPUT 9>    AS 10>    DECLARE @InWorking int 11>    DECLARE @OutWorking int 12>    IF @ValueIn != 1 13>    BEGIN 14>          SELECT @InWorking = @ValueIn - 1 15> 16>          EXEC spFactorial @InWorking, @Outworking OUTPUT 17> 18>          SELECT @ValueOut = @ValueIn * @OutWorking 19>    END 20>    ELSE 21>    BEGIN 22>          SELECT  @ValueOut = 1 23>    END 24>    RETURN 25>    GO 1> 2> 3>    DECLARE @WorkingOut int 4>    DECLARE @WorkingIn int 5>    SELECT @WorkingIn = 5 6>    EXEC spFactorial @WorkingIn, @WorkingOut OUTPUT 7> 8>    PRINT CAST(@WorkingIn AS varchar) + ' factorial is ' + CAST(@WorkingOut AS varchar) 9>    GO 5 factorial is 120 1> 2>    drop PROC spFactorial; 3>GO