首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

sql xml replace value of迷惑之处

2012-10-17 
sql xml replace value of不解之处1.实现的功能是把节点77替换成992.我的实现declare @source varchar(200

sql xml replace value of不解之处
1.实现的功能是把节点77替换成99

2.我的实现
declare @source varchar(2000),@xml xml
set @source='10,25,68,2,55,77,269'
set @xml=convert(xml,'<v>'+replace(@source,',','</v><v>')+'</v>')


declare @replaceStr varchar(20),@newStr varchar(20)
set @replaceStr = '77'
set @newStr='99'

if @xml.exist('/v/text()=sql:variable("@replaceStr")') = 1
set @xml.modify('replace value of (/v[text()=sql:variable("@replaceStr")]) with sql:variable("@newStr")')

select @xml
---执行时会发生如下错误,求大神如何修改
  XQuery [modify()]: The target of 'replace' must be at most one node, found 'element(v,xdt:untyped) *'

[解决办法]
我靠,昨天回复的时候csdn 挂了

气死我了

SQL code
WHILE @xml.exist('(v[.= sql:variable("@replaceStr")])') = 1 beginset @xml.modify('replace value of (/v[.= sql:variable("@replaceStr")]/text())[1] with sql:variable("@newStr")')    END SELECT  @xml 

热点排行