少し問題があります。このコードをインターネットから取得し、自分で使用するために変更しています。サンプルを実行しましたが、問題なく動作します。プログラム用に変更した後、エラーは表示されず、影響を受ける行は0行だけです。結局のところ、xml 列は何も返しません。ヒントを期待しています。
declare @input XML
set @input = '<?xml version="1.0" standalone="yes"?>
<NewDataSet>
<CurrencyTransact>
<BCurrencyCode>USD</BCurrencyCode>
<StockBalance>18000.00</StockBalance>
</CurrencyTransact>
<CurrencyTransact>
<BCurrencyCode>MYR</BCurrencyCode>
<StockBalance>30000.00</StockBalance>
</CurrencyTransact>
'
;with GrabXML AS
(
select
CurrencyBal.value('@BCurrencyCode', 'varchar(10)') as 'BCurrencyCode',
CurrencyBal.value('@StockBalance', 'decimal(18,2)') as 'StockBalance'
from
@input.nodes('/NewDataSet/CurrencyTransact') as n(CurrencyBal)
)
update dbo.Currency
set StockBalance = g.StockBalance
from GrabXML g
where dbo.Currency.CurrencyCode = g.BCurrencyCode