[英]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.