次のようなテーブルがあります。
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
私はそれを検索し、2つの方法を見つけました:
- 一時テーブルを使用し、基本的に
for
ループを使用して新しい行を挿入します。(正確にどのように実装するかはわかりません。) - カーソルの使用。(私はこの方法についてあまり考えていません、それはより良いアプローチですか?)
PS: Microsoft SQL Server 2008 を使用しています