列出所有父节点的函数问题
以下是一个列出所有父节点的函数
create function f_pid(@id varchar(3)) returns @t_level table(id varchar(3))
as
begin
insert into @t_level select @id
select @id = pid from tb where id = @id and pid is not null
while @@ROWCOUNT > 0
begin
insert into @t_level select @id select @id = pid from tb where id = @id and pid is not null
end
return
end
go
有几个问题请教:
1)这个函数创建之后是永久存放在数据库的吗?还是临时的? 如果数据库备份出来迁移到其他地方这个函数还在吗?
2)从哪里可以管理已经创建好的自定义函数?怎样列出所有自定义函数清单?
3)这个函数是sql server 专用的吗?可以在oracle等数据库上使用吗?
4)这个sql函数,和用程序递归来查询,那个效率高?
[解决办法]
1)这个函数创建之后是永久存放在数据库的吗?还是临时的? 如果数据库备份出来迁移到其他地方这个函数还在吗? A: 永久存在(只要你不删除它)。数据库备份出来迁移到其他地方这个函数还在2)从哪里可以管理已经创建好的自定义函数?怎样列出所有自定义函数清单? A:展开数据库--可编程性--函数.怎样列出所有自定义函数清单?A:select * from sys.objects where type ='FN'3)这个函数是sql server 专用的吗?可以在oracle等数据库上使用吗?A:sql server 专用4)这个sql函数,和用程序递归来查询,那个效率高?A: 待测试
[解决办法]
问题1:永久,备份还原后 还在
问题2:SQL Server Management Studio 在数据库的可编程里,可以看到函数列表
问题3:这个函数 不支持 oracle,不可以在oracle 上使用
问题4: 递归效率高
[解决办法]
1。你这个是永久的。当然在
2。企业管理器。查询分析器均可。SYSOBJECTS TYPE FN
3。语法不一样的话当然不可以
4。都是递归。用函数有时候不方便