我有一個使用ParentID列的表;表示層次結構的標準方式。計算層次結構列
我已閱讀關於hierarchyid的所有好東西,並且需要它來查詢具有特定祖先的所有記錄。問題是將錶轉換爲使用hierarchyid將需要許多我目前沒有時間的更改。
是否有可能創造:
一個計算列,它是類型的HIERARCHYID
OR
該表的一個HIERARCHYID索引視圖
我想做一個遞歸計算hierarchyid的函數,但是在性能方面不會很好。
我有一個使用ParentID列的表;表示層次結構的標準方式。計算層次結構列
我已閱讀關於hierarchyid的所有好東西,並且需要它來查詢具有特定祖先的所有記錄。問題是將錶轉換爲使用hierarchyid將需要許多我目前沒有時間的更改。
是否有可能創造:
一個計算列,它是類型的HIERARCHYID
OR
該表的一個HIERARCHYID索引視圖
我想做一個遞歸計算hierarchyid的函數,但是在性能方面不會很好。
看一看使用reqursive CTE
我在視圖中使用了以下遞歸CTE: WITH ancestorCte(AncestorID,ID)AS(SELECT ParentID,ID FROM dbo.MyTable AS t UNION ALL SELECT p.AncestorID,c.ID FROM dbo.MyTable AS c INNER JOIN 祖先cte AS p ON c.ParentID = P.ID) SELECT AncestorID,ID FROM祖先類 – Omtara 2012-07-27 20:26:53
有一下使用[遞歸CTE(http://msdn.microsoft.com/en-us/library/ms186243(V = SQL.105)的.aspx )。您可以使用它來構建層次結構ID或執行您需要的實際查詢。 – 2012-07-25 10:48:25
謝謝,我用遞歸CTE構建了一個擴展每個孩子的祖先的視圖。我的桌子有幾千條記錄,運行順暢。如果您將評論推薦給答案,我可以將其標記爲已解決。 – Omtara 2012-07-27 20:06:29