2
SQL Server 2005でXQueryを使用して、列に保存されたxmlを更新しようとしています。ここで私が更新する必要があるデータのサンプルです。Xqueryを使用してxsi:nil = "true"というノード値を置き換えます。
<Length>3</Length>
<Width>5</Width>
<Depth>6</Depth>
<Area xsi:nil="true" />
<Volume xsi:nil="true" />
別のテーブルの値に領域とボリュームを設定する必要があります。私は更新プログラムのCTEを作成しています。そこ私が省略されている他の論理があるが、私はCTEが、更新のための正しいデータが含まれていることを確認しました:
;with Volume (DocumentID, Volume) As
(
Select DocumentID, Volume from tbl
)
と私はテーブルを更新しようとする次のXQueryのSQLステートメントを使用しています。
UPDATE tbl_Archive
SET XML.modify(' declare namespace x="http://www.redacted.com";
replace value of (/x:Document/x:Volume/text())[1]
with sql:column("Volume.Volume")')
From Volume where volume.documentID = tbl_Archive.DocumentID
は私が影響を受けた1行を取得し、私はXMLを見たとき、それは変更されていない、と私はそれを動作させるために修正する必要があるかを把握することはできません。何らかの違いがあれば、ノードは型なしです。
うん、これはやりましたそれ。ありがとう! –