値を持つタグの<Value>
要素のコンテンツを更新する場合は、次のようなものを使用できます。<JP>
<Name>Email Addresses</Name>
;WITH XmlEmail AS
(
SELECT
SomeUniqueID, // some unique/primary key ID from your table - adapt as needed!
JPReq = XJP.value('(IsRequired)[1]', 'varchar(20)'),
JPName = XJP.value('(Name)[1]', 'varchar(20)'),
JPValue = XJP.value('(Value)[1]', 'varchar(20)')
FROM
dbo.YourTable
CROSS APPLY
YourXmlColumn.nodes('/JPS/P/JP[Name="Email Addresses"]') AS XTbl(XJP)
)
UPDATE dbo.YourTable
SET YourXmlColumn.modify('replace value of (/JPS/P/JP[Name="Email Addresses"]/Value/text())[1] with "newmail@test.tst"')
FROM XmlEmail xe
WHERE dbo.YourTable.SomeUniqueID = xe.SomeUniqueID
これにより、すべての行とすべての ノードが同じ値に更新<JP>/<Value>
されます - それはあなたが探しているものですか?
更新:<JP>
XML 列に実際にタグがEmail Addresses
名前として含まれている行のみをチェックおよび更新するためのサポートが追加されました。テーブルに主キーが必要です(何も言わなかったので、それが何であるかはわかりません)。それについて)....私はSomeUniqueID
列名として使用しました-必要に応じてテーブルに合わせてください!