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