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

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

A Recursion

   <source lang="sql">

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

</source>