Hi Team,
I have written a query to read the data from Table1 table , in that table there are 2 columns which has xml values, so I need to change one of the xml element value with the new value (it doesn’t matter what value is already present)
My query:-
SELECT [StatusCode] ,MethodDetail ,[ExtendedData] ,[PostMarkDate] ,[Amount] FROM [dbo].[Table1] FOR XML RAW('PaymentRecord'), ELEMENTS, TYPE, ROOT('Payments')
My current result :-
<Payments> <PaymentRecord> <StatusCode>ACV</StatusCode> <MethodDetail> <Check> <BankName>JPMORGAN CHASE BANK</BankName> <RoutingNumber>0187671</RoutingNumber> </Check> </MethodDetail> <ExtendedData> <Extra> <Source>Bank</Source> <PolicyNumber>12345677</PolicyNumber> </Extra> </ExtendedData> <PostMarkDate /> <Amount>648.1000</Amount> </PaymentRecord> </Payments>
Here I need change the PolicyNumber element value to my own value like '76576566' - I will not be knowing what value present in the table - but I know new value which needs to be changed.
Kindly let me know how to perform this.
This is the sample table with the data :-
Create table [Table1] ( [StatusCode] nvarchar(10), [MethodDetail] xml, [ExtendedData] XML, [PostMarkDate] DATE, [Amount] DECIMAL ) insert into [Table1]([StatusCode],[MethodDetail],[ExtendedData],[PostMarkDate],[Amount]) values ('ACV', '<Check> <BankName>JPMORGAN CHASE BANK</BankName> <RoutingNumber>0187671</RoutingNumber> </Check>', '<Extra> <Source>Bank</Source> <PolicyNumber>12345677</PolicyNumber> </Extra>', '', '648.1000' )
Expected Output could be : I just need to display in my select query result with new policy number - no update to the Table
<Payments> <PaymentRecord> <StatusCode>ACV</StatusCode> <MethodDetail> <Check> <BankName>JPMORGAN CHASE BANK</BankName> <RoutingNumber>0187671</RoutingNumber> </Check> </MethodDetail> <ExtendedData> <Extra> <Source>Bank</Source> <PolicyNumber>10101010</PolicyNumber> </Extra> </ExtendedData> <PostMarkDate>1900-01-01</PostMarkDate> <Amount>648</Amount> </PaymentRecord> </Payments>