-1

我在一张表中有 XML 字段。我想更新那个字段。这是 XML 格式:

<data><user>abcd</user></data>

我想将值更改abcdefgh. 我怎样才能做到这一点?

4

1 回答 1

1

以下是一些示例,展示如何更新常量、变量或使用现有列信息:

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
于 2012-12-07T23:18:47.897 回答