关于数据库(SqlServer)中替换xml文件里面的value值

declare @xmlDoc xml 
declare @PrintValue nvarchar(max)

select @xmlDoc=DESCRIPTION from dbo.WF_PERSIST_DESCRIPTOR where [PROCESS_ID]='1e9e9059-50ea-adac-4660-918cd54e3436'  --将数据中的数据读取出来,数据库里面报错的是nvarchar(max)这里可以直接转换

set @xmlDoc.modify('replace value of (/Process/Activities/Activity[@key="N8"]/Name/text())[1] with "国美在线COO"')     --替换掉某个节点下面的value值。  text() 是读取节点存储的text值

update dbo.WF_PERSIST_DESCRIPTOR set DESCRIPTION=Convert(nvarchar(max),@xmldoc) where  [PROCESS_ID]='1e9e9059-50ea-adac-4660-918cd54e3436'
set @PrintValue=@xmlDoc.value('(/Process/Activities/Activity[@key="N8"]/Name)[1]','nvarchar(MAX)')
print @PrintValue
posted @ 2015-07-08 12:07  hg000  阅读(1275)  评论(0编辑  收藏  举报