SQL Server/T-SQL/Store Procedure Function/Recursive function

Материал из SQL эксперт
Перейти к: навигация, поиск

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