同じ ID に対して複数回更新する必要がある XML 列があります。クエリを実行すると、最初に一致した ID の XML のみが更新されます。ここにクエリがあります
Update Quote
Set [XML].modify('replace value of (/Document/LineItems/LineItem[@ID=sql:column("QLines")]/LineItemStatus/text())[1] with "DELETED"')
From Quote Qt
Inner Join @QuoteLines Q on Qt.QuoteID=Q.QtID
@QuoteLines Table
QLines QtID
30 111645001
40 111645001
Quote Table
QuoteID XML
111645001 '<Document ID="111645001">'
Quote Table では、行項目 30 と 40 の両方の XML ステータスが「削除済み」である必要がありますが、行項目 30 についてのみ更新されています。
カーソルや反復のようなものを使用する必要はありません。ありがとう