有关自定义函数的参数问题?

lzslxl 2006-11-15 10:58:08
在SQL SERVER中的自定义函数的参数有没有个数的限制?我写一个自定义的函数,中有用到递归,两个参数就行,当加多一个参数时就会报错:“服务器: 消息 8144,级别 16,状态 3,过程find_sort1,行 18为过程或函数 find_sort 指定的参数太多。”
...全文
195 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
qw12cn 2006-11-15
  • 打赏
  • 举报
回复
我试了一下,没问题,可以运行。
只是你贴出的程序有个错误
原:insert into @t_Level select * from find_sort(@in_id,@level,@sort)
新:insert into @t_Level select * from find_sort1(@in_id,@level,@sort) --应为find_sort1

如果还有问题,看看你的SQL补丁。我是SQL2K(SP4)
lzslxl 2006-11-15
  • 打赏
  • 举报
回复
有没人帮忙解决一下
lzslxl 2006-11-15
  • 打赏
  • 举报
回复
create table area (a_id int,f_id int)
insert into area values(1,0)
insert into area values(2,0)
insert into area values(3,0)
insert into area values(4,1)
insert into area values(5,4)
lzslxl 2006-11-15
  • 打赏
  • 举报
回复
create function find_sort1(@in_id int,@level int=1,@sort int=1)
returns @t_Level table(id int,t_level int,t_sort int)
as
begin

declare tb cursor local
for
select a_id from area where f_id=@in_id
open tb
fetch tb into @in_id
while @@fetch_status=0
begin
insert into @t_Level values(@in_id,@level,@sort)
set @level=@@nestlevel+1
set @sort=@sort+1
if @@nestlevel<32
begin
insert into @t_Level select * from find_sort(@in_id,@level,@sort)
set @level=@@nestlevel
set @sort=@sort+@@rowcount
end
fetch tb into @in_id
end
close tb
DEALLOCATE tb
return
end
jiaojian843 2006-11-15
  • 打赏
  • 举报
回复
至少3个参数没问题。你找找别的问题吧。
jiaojian843 2006-11-15
  • 打赏
  • 举报
回复
应该没有吧。
中国风 2006-11-15
  • 打赏
  • 举报
回复
楼主把函数贴出来
lzslxl 2006-11-15
  • 打赏
  • 举报
回复
UP
lzslxl 2006-11-15
  • 打赏
  • 举报
回复
UP

34,593

社区成员

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

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