请教:一个递归的存储过程中使用游标的问题??
eteok 2003-05-09 02:51:08 CREATE PROCEDURE Pro_getSubFolder
@folderID int
AS
declare @cursorID int
declare @childerID int
Declare folderID_cursor Cursor
For Select folderID from FileFolder where FaFolderID = @folderID
Open folderID_cursor
Fetch Next From folderID_cursor into @cursorID
While @@Fetch_Status = 0
Begin
Print @cursorID
select @childerID=[dbo].fn_GetChilder(@cursorID) //获取子节点编号
if @childerID is not null
begin
print @childerID
Close folderID_cursor
Deallocate folderID_cursor
exec Pro_getSubFolder @childerID //递归
end
Fetch Next From folderID_cursor into @cursorID //21行
End
Close folderID_cursor //23行
Deallocate folderID_cursor //24行
GO
这个存储过程我是想从上到下遍历一个树形结构,将目录的编号显示出来,其中[dbo].fn_GetChilder()函数功能是取得下级节点编号。
问题就是在遍历了第一个树枝后,也就是把一个节点的子节点全部显示出来后,就出现错误了,错误的原因是21、23、24行:名为 'folderID_cursor' 的游标不存在。