请问SQL里的函数不能递归吗?

bleempan 2006-04-27 03:41:40
create function testE()
returns int
as
begin
testE()
return(0)
end

第 5 行: 'testE' 附近有语法错误。

语法错误,请教前辈正确的语法,谢谢!
...全文
189 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
skywebnet 2006-04-27
  • 打赏
  • 举报
回复
不能直接使用嵌套,可以使用间接嵌套

方法:

1.定义两个函数

create function testE(@val int)
returns int
begin
return 0
end

go

create function testB(@val int)
returns int
begin
return 0
end



2.函数嵌套调用


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
end

go

ALTER function testB(@val int)
returns int
as
begin
return dbo.testE(@val)
end
bleempan 2006-04-27
  • 打赏
  • 举报
回复
语言真差啊!居然不能递归...叫我怎么活...-_-

我用存储过程的话会出现问题...

郁闷k ...
zlp321002 2006-04-27
  • 打赏
  • 举报
回复
--SQL Server 2005 可以递归调用.用CTE
panjinfu80 2006-04-27
  • 打赏
  • 举报
回复
不能的。
itblog 2006-04-27
  • 打赏
  • 举报
回复
不可以这样用~

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧