我正在使用SQL Server并使用Table with XML列。我的插入过程有输入参数XML文档。有什么办法可以更新我表中现有的XML吗?
这是我表中的OLD XML:
<weather Location="Paris, France">
<forecast>
<description>Sky is clear</description>
<Date>2013-09-19</Date>
<MinTemp>13</MinTemp>
<MaxTemp>20</MaxTemp>
<Humidity>78</Humidity>
<Pressure>1024</Pressure>
<Windspeed>3</WindSpeed>
</forecast>
<forecast>
<description>Sky is clear</description>
<Date>2013-09-20</Date>
<MinTemp>14</MinTemp>
<MaxTemp>21</MaxTemp>
<Humidity>75</Humidity>
<Pressure>1020</Pressure>
<Windspeed>1</WindSpeed>
</forecast> .... 10 times this forecast
</weather>
这是我的新人:
<weather Location="Paris, France">
<forecast>
<description>Sky is clear</description>
<Date>2013-09-19</Date>
<MinTemp>14</MinTemp>
<MaxTemp>21</MaxTemp>
<Humidity>70</Humidity>
<Pressure>1000</Pressure>
<Windspeed>5</WindSpeed>
</forecast>
<forecast>
<description>Sky is clear</description>
<Date>2013-09-20</Date>
<MinTemp>17</MinTemp>
<MaxTemp>24</MaxTemp>
<Humidity>68</Humidity>
<Pressure>1024</Pressure>
<Windspeed>3</WindSpeed>
</forecast> .... 10 times this forecast
</weather>
我现在想要的是用我从新的XML读取的值来更新我的旧XML。我知道我必须以某种方式通过我的OLD XML,我想我可以用...同时(存在)和修改,但如何从我的新XML读取我需要的值,如何阅读让我们说9月19日的数据,并在旧XML中更新9月19日,然后读取9月20日的数据,然后在旧的XML等等更新9月20日......?
感谢您的帮助...
答案 0 :(得分:1)
你可以试试这个: -
update tbl1
set myXml.modify('replace value of (/weather/forecast/..)[1]
with concat(string(sql:column("columnname")), "value")')
where myXml.exist('/weather/forecast/..') = 1 //some condition