批量修改XML,在XML内添加节点

begin tran

declare @i int;
set @i=8038;
while @i<8565
begin
    declare @xmlDoc XML;
    select @xmlDoc=XmlContent
    from T_FORMINSTANCE_GLOBAL
    where ProcInstId=@i
    if(@xmlDoc is not null)
    begin
        declare @S nvarchar(50);
    
        select @S=b.ApplyStatus
        from T_FORMINSTANCE_GLOBAL a
        left join Platform_Danone_BusinessData.dbo.T_DWContract_Process b on a.ProcInstId=b.ProcInstId
        where a.ProcInstId=@i
        
        if(@S='0')
        begin
            set @xmlDoc.modify('insert <applystatus_Text_CN>活动中</applystatus_Text_CN> before (/root/DWCContractapplication_hiddenBlock_MainStore/status)[1]')
            set @xmlDoc.modify('insert <applystatus_Text_EN>Active</applystatus_Text_EN> before (/root/DWCContractapplication_hiddenBlock_MainStore/status)[1]')
        end
        else if(@S='1')
        begin
            set @xmlDoc.modify('insert <applystatus_Text_CN>完成</applystatus_Text_CN> before (/root/DWCContractapplication_hiddenBlock_MainStore/status)[1]')
            set @xmlDoc.modify('insert <applystatus_Text_EN>Completed</applystatus_Text_EN> before (/root/DWCContractapplication_hiddenBlock_MainStore/status)[1]')
        end
        else if(@S='2')
        begin
            set @xmlDoc.modify('insert <applystatus_Text_CN>作废</applystatus_Text_CN> before (/root/DWCContractapplication_hiddenBlock_MainStore/status)[1]')
            set @xmlDoc.modify('insert <applystatus_Text_EN>Abort</applystatus_Text_EN> before (/root/DWCContractapplication_hiddenBlock_MainStore/status)[1]')
        end
        else if(@S='3')
        begin
            set @xmlDoc.modify('insert <applystatus_Text_CN>重发起</applystatus_Text_CN> before (/root/DWCContractapplication_hiddenBlock_MainStore/status)[1]')
            set @xmlDoc.modify('insert <applystatus_Text_EN>Resubmit</applystatus_Text_EN> before (/root/DWCContractapplication_hiddenBlock_MainStore/status)[1]')
        end
        else if(@S='4')
        begin
            set @xmlDoc.modify('insert <applystatus_Text_CN>修改</applystatus_Text_CN> before (/root/DWCContractapplication_hiddenBlock_MainStore/status)[1]')
            set @xmlDoc.modify('insert <applystatus_Text_EN>Modify</applystatus_Text_EN> before (/root/DWCContractapplication_hiddenBlock_MainStore/status)[1]')
        end
        else
        begin
            set @xmlDoc.modify('insert <applystatus_Text_CN>活动中</applystatus_Text_CN> before (/root/DWCContractapplication_hiddenBlock_MainStore/status)[1]')
            set @xmlDoc.modify('insert <applystatus_Text_EN>Active</applystatus_Text_EN> before (/root/DWCContractapplication_hiddenBlock_MainStore/status)[1]')
        end

        update T_FORMINSTANCE_GLOBAL
        set XmlContent=@xmlDoc
        where ProcInstId=@i
    end
    
    set @i=@i+1
end


select
XmlContent
from T_FORMINSTANCE_GLOBAL

--rollback
--commit

posted @ 2012-04-23 17:29  JasonRen  阅读(446)  评论(0)    收藏  举报