我在一张表中有 XML 字段。我想更新那个字段。这是 XML 格式:
<data><user>abcd</user></data>
我想将值更改abcd
为efgh
. 我怎样才能做到这一点?
我在一张表中有 XML 字段。我想更新那个字段。这是 XML 格式:
<data><user>abcd</user></data>
我想将值更改abcd
为efgh
. 我怎样才能做到这一点?
以下是一些示例,展示如何更新常量、变量或使用现有列信息:
declare @x table(i bigint not null identity(1,1), x xml, y nvarchar(64))
declare @z nvarchar(64) = 'sql variable data'
insert @x select '<data><user>abcd</user></data>', 'sql column data 1'
insert @x select '<data><user>abcd</user></data>', 'sql column data 2'
insert @x select '<data><user>abcd</user></data>', 'sql column data 3'
update @x
set x.modify('replace value of (/data/user/text())[1] with ''efgh''')
where i=1
update @x
set x.modify('replace value of (/data/user/text())[1] with sql:column(''y'')')
where i=2
update @x
set x.modify('replace value of (/data/user/text())[1] with sql:variable(''@z'')')
where i=3
select * from @x
输出:
i x y
1 <data><user>efgh</user></data> sql column data 1
2 <data><user>sql column data 2</user></data> sql column data 2
3 <data><user>sql variable data</user></data> sql column data 3