2015-10-26 33 views
0

你好Kentico專家的最佳途徑,是什麼讓一個特定節點的所有別名Kentico

什麼,就是以Kentico一個特定節點內所有的別名,然後刪除它們的最好方法?

例如:我需要刪除「產品」節點中的所有別名。該節點下有5000個產品,它們可能包含別名。

如何通過最簡單的方式刪除它們?

感謝

回答

2

無需編寫任何代碼或運行任何SQL查詢的最佳方法是使用內容樹中的「列表」視圖(預V8)和「上市」視圖(V8和更新版本)。

如果您是節點Products是/ Products,請選擇Products節點,然後單擊內容樹頂部的Listing按鈕。在列表模式中,在列表底部有兩個下拉列表。在第一個中選擇「所有頁面」,在第二個中選擇「刪除」,然後單擊確定按鈕。這將刪除所需的一切。

如果你想摧毀他們所有的歷史和一切,那麼去回收站找到所有的頁面並永久銷燬它們。

+0

感謝@Breden的快速回復。如果我的問題不夠清楚,我很抱歉。我的意思是我需要刪除特定節點內所有節點的節點別名。 – user2353609

+0

在這種情況下,那麼沒有一個質量OOTB解決方案。但是你可以查看給定起始路徑的所有URL別名。轉到一個頁面,然後選擇屬性>網址。然後點擊添加新別名。在該對話框中,您可以「查看所有別名」。在那裏按父路徑過濾。然後通過並刪除您不想要的別名。您也可以(謹慎)查看「CMS_DocumentAlias」表格。 –

3

正如Brenden所說,沒有辦法大量刪除文檔別名。你必須通過SQL來完成。

這是你如何得到一個子樹的所有別名:

SELECT * 
    FROM [CMS_DocumentAlias] 
    WHERE [AliasNodeID] IN (SELECT NodeID FROM [CMS_Tree] 
    WHERE [NodeAliasPath] LIKE '/Products/%' /*AND NodeSiteID=...*/) 

首先讓你的數據庫的備份,然後檢查查詢是否爲您提供了所需的記錄,可能還有一些更多的約束添加到條件(如現場和文化)以及何時對結果感到滿意,只需將SELECT *替換爲DELETE即可。

相關問題