SQL Server 2005 以降を使用している場合は、再帰クエリを使用して情報を取得できます。以下に例を示します:
With tree (id, Name, ParentID, [level])
As (
Select id, Name, ParentID, 1
From [myTable]
Where ParentID = 0
Union All
Select child.id
,child.Name
,child.ParentID
,parent.[level] + 1 As [level]
From [myTable] As [child]
Inner Join [tree] As [parent]
On [child].ParentID = [parent].id)
Select * From [tree];
このクエリは、最初の部分 (ParentID =0) で要求された行とすべてのサブ行を再帰的に返します。これは役に立ちますか?
インサートで何をしたいのか理解できません。完了したら、期待される結果に関してさらに情報を提供できますか?
頑張ってください!