我有一列使用SQL Server的Xml數據類型存儲xml。此外,我有一個Xpath查詢,可以從我想要刪除的XML中選擇單個節點。所以,我的問題是,有沒有一種方法可以選擇列中的所有xml,除了我需要刪除的單個特定節點?我可以選擇要刪除的節點,但我找不到一種方法將其從其餘的xml中刪除,並保留其餘的完整。如果任何人都可以給我任何關於如何使用SQL Server Xml函數的指導,那將不勝感激。全選xml排除單個特定節點SQL Server
回答
你可以這樣說:
DECLARE @xml XML
SELECT @xml = YourXmlField
FROM YourTable
WHERE ID = 1
SET @xml.modify('delete /Root/A')
SELECT @xml
所以,你需要把值轉換成XML變量,並使用修改刪除節點,給該節點刪除相應的XPath。
感謝您的回覆!我嘗試了你所說的,並且我得到了這個錯誤:錯誤地使用了XML數據類型方法'modify'。預計在這種情況下非增變方法。這裏是我使用的XQuery代碼行會產生以下錯誤:pXml.modify('delete/variation/section/layout/area [@type =「Image」and @mode =「logo」and contains(@previewimage, 「.jpg」)]') – 2012-01-14 22:05:19
您是否使用XML變量嘗試了我給出的* exact *方法?當您以錯誤的方式使用「修改」時會發生錯誤 - 例如如果你試圖直接在你的SELECT中做到這一點。您只能將其用作UPDATE..SET語句的一部分,或作爲XML變量上SET的一部分。 – AdaTheDev 2012-01-14 22:09:31
BRILLIANT!你是對的,我在選擇聲明中使用它。我根據你所說的做了修改,它完美的工作! – 2012-01-14 22:54:16
- 1. SQL Server:按XML列的節點排序
- 2. 使用SQL選擇單個XML節點
- 3. 如何選擇XML節點的SQL Server
- 4. XSLT XML到XML選擇特定節點
- 5. 從xml中刪除所有節點,使用XSLT排除特定節點
- 6. 排序只有特定的XML節點
- 7. 排序特定的xml節點
- 8. SQL Server 2008 XML空節點
- 9. SQL Server XML抽取節點
- 10. 生成XML - 排除節點
- 11. SQL選擇行並排除子節點
- 12. 在SQL Server中獲取特定的XML子節點
- 13. 刪除特定的XML節點的Javascript
- 14. 刪除xml中的特定節點
- 15. 我怎麼能比包含SQL Server與特定值XML另一個節點更新XML節點
- 16. 刪除在SQL Server中的XML領域的多個節點
- 17. 複製XML,同時排除父節點,刪除特定的子節點並覆蓋一些子節點
- 18. 刪除特定節點的複選框
- 19. SQL Server的FOR XML:加入XML節點到一個XML
- 20. 如何選擇特定xml節點的子節點?
- 21. XML到PSV特定節點
- 22. 閱讀特定XML節點
- 23. XML:在特定節點
- 24. XML - 獲取特定節點
- 25. 使用SQL在特定位置插入特定的XML節點
- 26. 選擇單節點在XML
- 27. 刪除多個節點的單次XQuery的SQL Server
- 28. SQL Server節點
- 29. 正在更新SQL Server XML節點
- 30. 更新SQL Server中的XML節點
請顯示您的代碼 – Hogan 2012-01-14 21:36:11