以文本方式查看主题

-  昂捷论坛  (http://www.enjoyit.com.cn/bbs/index.asp)
--  □-系统配置管理类  (http://www.enjoyit.com.cn/bbs/list.asp?boardid=34)
----  问:如何用sql脚本修改表中的xml格式数据  (http://www.enjoyit.com.cn/bbs/dispbbs.asp?boardid=34&id=8619)

--  作者:Kite
--  发布时间:2012/11/8 15:27:38
--  问:如何用sql脚本修改表中的xml格式数据

<rows>
  <row>
    <dt_brand>dt_brand</dt_brand>     --1

    <c_bd />                                       --2
    <tb_posfy>0</tb_posfy>
  </row>
</rows>

数据库修改以上xml格式的数据。

 

1.修改如上面的格式中的(--1),dt_brand是有值dt_brand的,像这种情况,直接如下修改。
update tbc_eform_data
     set c_data.modify(\'replace value of (/rows/row/dt_brand/text())[1] with \'\'dt_brand1\'\'\')
 where c_eform_guid=\'5BEEE78F-6ED7-4E75-B494-9108D09345A1\'
   and c_id=\'1008-000001\'

 

2.修改如上面的格式中的(--2),c_bd是没有值的,像这种情况,我是先删除再添加来修改的。
 A.删除

update tbc_eform_data
     set c_data.modify(\'delete /rows/row/c_bd[1]\')
where c_eform_guid=\'5BEEE78F-6ED7-4E75-B494-9108D09345A1\'
   and c_id=\'1008-000001\'

B.插入
update tbc_eform_data
     set c_data.modify(\'
 insert <c_bd>soga</c_bd>
   after (/rows/row/dt_brand)[1]\') 
       
---after表示是在dt_brand的后面,也可以用before替换,方法类似
where c_eform_guid=\'5BEEE78F-6ED7-4E75-B494-9108D09345A1\'
   and c_id=\'1008-000001\'


--  作者:Kite
--  发布时间:2012/11/8 15:31:50
--  
soga
--  作者:飞絮
--  发布时间:2012/11/8 17:10:52
--  

这个应该移到FAQ中


--  作者:Kite
--  发布时间:2012/11/9 18:22:28
--  嗯,发错地方了,下次不会了
 嗯,发错地方了,下次不会了