我有一张如下表,
Create Table Entries
(
EntryID int,
ParentEntryID int, // -1 if root node
EntryText nvarchar(100)
)
我需要编写一个存储过程,它接受一个叶子 EntryID
并从该叶子条目开始通过根条目返回所有条目。最好的方法是什么?
我想要的存储过程如下所示,
CREATE PROCEDURE dbo.GetPath
@leafEntryID int
AS
// what to do...
GO
我搜索了一下,发现了两种方法:
- 使用临时表并基本上使用
for
循环向其中插入新行。(我不确定如何准确实现它。) - 使用游标。(我对这种方式不太了解,这是更好的方法吗?)
PS:我使用的是 Microsoft SQL Server 2008