递归式指代码片段调用自身的情况;危险之处在于:如果调用了自身一次,那么如何防止他反复地调用自身。也就是说提供递归检验来保证适当的时候可以跳出。
以阶层为例子说存储过程中递归的调用。
递归
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
CREATE PROC [dbo].[usp_spFactorial] @InputValue INT , @OuputValue INT OUTPUT AS BEGIN DECLARE @InValue INT ; DECLARE @OutValue INT ; IF(@InputValue!=1) BEGIN SET @InValue = @InputValue - 1; EXEC spFactorial @InValue,@OutValue OUTPUT ; SELECT @OuputValue = @InputValue * @OutValue; END ELSE BEGIN SET @OuputValue = 1; END END |
当创建此存储过程时候,会遇见一条报告信息