2012-12-07 110 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