4> CREATE FUNCTION dbo.fibonacci2(
5> @n AS int
6> )
7> RETURNS int
8> AS
9> BEGIN
10> IF @n < 0
11> RETURN NULL
12> ELSE
13> IF @n in (0, 1)
14> RETURN @n
15> ELSE
16> BEGIN
17> DECLARE
18> @i AS int,
19> @f AS int
20> SET @i = @n
21> SET @f = 0
22> WHILE @i > 0
23> BEGIN
24> SET @f = @f + @i
25> SET @i = @i - 1
26> END -- loop while @i > 0
27> END -- if @n > 0
28> RETURN @f
29> END -- function
30> GO
1> --Invoking the Loop fibonacci2() User-Defined Function
2> SELECT dbo.fibonacci2(32) -- succeeds
3> SELECT dbo.fibonacci2(33) -- succeeds
4>
5> drop function dbo.fibonacci2
6> GO
-----------
528
(1 rows affected)
-----------
561
(1 rows affected)
|