ALTER PROC spTriangular @ValueIn int, @ValueOut int OUTPUT AS DECLARE @InWorking int; DECLARE @OutWorking int; IF @ValueIn > 32 BEGIN THROW 50001, 'Overflow! Input value should not be greater than 32', 1; RETURN; END IF @ValueIn != 1 BEGIN SELECT @InWorking = @ValueIn - 1; EXEC spTriangular @InWorking, @OutWorking OUTPUT; SELECT @ValueOut = @ValueIn + @OutWorking; END ELSE BEGIN SELECT @ValueOut = 1; END RETURN; GO