当前位置: 代码迷 >> Sql Server >> sql 批量修改XML 值 。该怎么处理
  详细解决方案

sql 批量修改XML 值 。该怎么处理

热度:424   发布时间:2016-04-24 09:31:50.0
sql 批量修改XML 值 。
本帖最后由 qq_18899733 于 2014-12-23 22:52:23 编辑
  批量修改 ID   Type
  如果ID="1"  修改为ID=“A”
  如果Type="2"  修改为Type="B"

   <col ID="ProjArea"  ID="1"  Type="2"   >
------解决思路----------------------
DECLARE @col XML
SET @col='<col ID="1" Type="2"/><col ID="1" Type="2"/><col ID="2" Type="3"/>'
WHILE @col.exist('/col[@ID="1"]')=1 
BEGIN 
SET @col.modify('replace value of(/col[@ID="1"]/@ID)[1] with "A"')
END
WHILE @col.exist('/col[@Type="2"]')=1 
BEGIN 
SET @col.modify('replace value of(/col[@Type="2"]/@Type)[1] with "B"')
END
循环
------解决思路----------------------

DECLARE @col XML
SET @col='<col ID="1" Type="2"/><col ID="1" Type="2"/><col ID="2" Type="3"/>'
select @col as 原值
WHILE @col.exist('/col[@ID="1"]')=1 
    BEGIN 
        SET @col.modify('replace value of(/col[@ID="1"]/@ID)[1] with "A"')
    END
WHILE @col.exist('/col[@Type="2"]')=1 
    BEGIN 
        SET @col.modify('replace value of(/col[@Type="2"]/@Type)[1] with "B"')
    END
select @col as 新值

学习3楼的这种写法!
  相关解决方案