2013-09-19 6 views
1

Я использую SQL Server и столбец «Таблица с XML». Моя процедура для вставки имеет входной параметр XML-документ. Есть ли способ обновить уже существующий XML в моей таблице?Как обновить XML, используя Modify

Это мой старый 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 со значениями я прочитал из нового , Я знаю, что мне нужно как-то пройти через мой OLD-XML, я думаю, что смогу сделать это с ... while (существует) и изменить, но как читать значение, которое мне нужно от моего нового XML, как читать, скажем, данные за 19 сентября , а также обновить 19 сентября в старом XML, затем прочитать данные за 20 сентября, а затем обновить 20 сентября в старом XML и т. д. и т. д.??

Спасибо за помощь ...

+1

Вы смотрели на [изменить()] (http://msdn.microsoft.com/en-us/ библиотека/ms187093.aspx)? –

+0

Вы хотите обновить только несколько отдельных свойств - или вы хотите в целом заменить весь XML в своем столбце новым XML-чтением из этого файла? –

+0

Трудно понять, как вы хотите, чтобы ваш XML был обновлен. Возможно, вы могли бы включить в свой вопрос, как выглядит параметр, и как выглядит XML, как это уже есть в таблице, и то, что вы хотите, чтобы XML выглядел в таблице после обновления. Следует ли обновлять или добавлять прогнозы? Должны ли они иногда удаляться? Должно ли место обновляться или, возможно, использоваться для определения того, где должен быть добавлен прогноз? –

ответ

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 
+0

Мне нужно прочитать новые значения из моего нового XML-файла, поэтому я не совсем уверен, что это то, что мне нужно. Я знаю, что мне нужно использовать модификацию и пытались сделать это так, но я не могу написать это запрос правильно. Это похоже на необходимость повторить и мой новый файл, и старый, чтобы обновить его, но не хочу этого делать. – Edna

+0

@ user2710923: - Мне очень жаль, но я не понял вашу точку зрения. Помог ли мой ответ вам или это напрасно? :( –

+0

:) Я даже не мог попробовать, потому что это не то, что я действительно искал. В любом случае, спасибо за ваш ответ. – Edna

Смежные вопросы