2014-10-20 2 views
3

У меня есть таблица с именем DateRule в sql server 2008R2, и я пытаюсь обновить значение столбца XML, но оно не работает должным образом.Обновить столбец XML таблицы в SQL Server 2008R2

  • DateRuleId: 40
  • Описание: 2 месяца после даты шаг начал
  • DateRuleXml:

     <Daterule> 
          <Type>Timespan</Type> 
          <months>2</months> 
          <days>0</days> 
          <hours>0</hours> 
          <minutes>0</minutes> 
          <seconds>0</seconds> 
          <After>1</After> 
          <Reference>1</Reference> 
         </Daterule> 
    

Запрос я пытаюсь запустить это:

update centralq3.wf.DateRule 
set DateRuleXml.modify('replace value of (/Daterule/@Reference)[1] with "6"') 
where DateRuleId = 40 

А:

update centralq3.wf.DateRule 
set DateRuleXml.modify('replace value of (//@Reference)[1] with "6"') 
where DateRuleId = 40 

Они оба succed и говорят (1 ряд (ы) пострадавших), но значение задания не изменяется. Что я делаю неправильно? Я знаю, что есть много вопросов относительно этого, но не помогло мне.

Редактировать !! Ответ:

UPDATE centralq3.wf.DateRule 
SET DateRuleXml.modify('replace value of (/Daterule/Reference[1]/text())[1] with "6"') 
WHERE DateRuleId = 40 
+0

Попробуйте это: 'набор DateRuleXml.modify ('заменить значение (/Daterule/@Reference)[.=1][1] с "6" ') 'alone –

+0

Succeded, показал мне, что 1 строка затронута, но ничего не изменилось – Ciprian

+0

Это сработало! Большое спасибо! – Ciprian

ответ

0

Он:

SET DateRuleXml.modify('replace value of (/Daterule/Reference[1]/text())[1] with "6"'); 
Смежные вопросы