2012-12-07 156 views
-1

我在一个表中有XML字段。我想更新该字段。这里是XML格式:更新sql server 2008中的XML字段

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

我想价值abcd更改为efgh。我怎样才能做到这一点?

+1

请考虑从http第一十个条目://计算器。 com/search?q =%5Bsql-server%5D + update + xml – GSerg

回答

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 
+0

http://msdn.microsoft.com/en-us/library/ms190675.aspx – JohnLBevan