簡體   English   中英

添加屬性和更新值XML列sqlserver2008

[英]add attribute and update value XML column sqlserver2008

我在stackoverflow上看到了幾個答案,但找不到我想要的東西。 我已經檢查了這個問題以及這個頁面和其他頁面,但是無法解決。

這是我的測試數據。 實際上,此代碼位於表的XML列中。

<product id=152>
    <name>tractor</name>
    <category weight=5600 invoice="A600"/>
</product>
<product id=731>
    <name>excavadora</name>
    <category weight=12340 invoice="B300"/>
</product>

我需要執行以下兩項操作來更新先前的XML:

  • 在類別節點上添加新屬性
  • 能夠更新該新屬性值,嘗試修改權重但無法做到這一點

我認為解決方案應該在查詢中使用.modify和.value關鍵字,但不知道如何使用。

我正在使用SQL Server 2008 Express。 我已經看到查詢可以幫助獲得答案,但是我實際上沒有任何作用。

這是針對您情況的示例。 它用值54321代替ID 152的權重。

DECLARE
    @x xml,
    @ProductID int,
    @CategoryWeight int

SELECT @x = '
    <Product ID="152"> 
        <Category Weight="5600" Invoice="A600" /> 
    </Product>
    <Product ID="731">
        <Category Weight="12340" Invoice="B300" />        
    </Product>'

SELECT
   @ProductID = 152,
   @CategoryWeight = 54321

SET @x.modify('
    replace value of (
        /Product[@ID=sql:variable("@ProductID")]/Category/@Weight
    )[1]
    with sql:variable("@CategoryWeight")
')

SELECT @x

請注意,如果需要,可以將sql:variable(“”)替換為實際值。 熟悉此示例,插入內容應該是小菜一碟。 :) 祝好運!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM