create function testE()
returns int
as
begin
testE()
return(0)
end第 5 行: 'testE' 附近有语法错误。语法错误,请教前辈正确的语法,谢谢!

解决方案 »

  1.   

    --SQL Server 2005 可以递归调用.用CTE
      

  2.   

    不能直接使用嵌套,可以使用间接嵌套方法:1.定义两个函数create  function testE(@val int)
    returns int
    begin
      return 0
    endgocreate  function testB(@val int)
    returns int
    begin
      return 0
    end2.函数嵌套调用
    alter function testE(@val int)
    returns int
    as
    begin
     declare  @i int 
     set @i=2
     set @val = @val+1
     if @val<=10 
       set @i=@val+dbo.testB(@val)
     
     return @i
    endgoALTER function testB(@val int)
    returns int
    as
    begin
     return dbo.testE(@val)
    end