在SQL Server中将XML更新为大写

时间:2010-05-07 12:45:25

标签: sql xml

我将XML字符串存储在SQL Server数据库的列中。我正在尝试运行UPDATE语句,将某个字段设置为大写字母。我可以在SELECT期间轻松完成,但无法使用更新。

此SELECT语句适用于 select Upper(XmlTest.value('(/CodeFiveReport/Owner/@UnitNumber)[1]', 'varchar(10)')) as UnitNumber from uploadreport

但我想永久更新XML Update table Set XmlString.Modify('replace value of (/Root/Node/@Field)[1] with ?

2 个答案:

答案 0 :(得分:1)

在SQL Server 2008中将大写添加到SQL Server中,因此除非您想使用游标,否则之前没有好的解决方案。以下适用于SQL Server 2008:

declare @xml xml

set @xml = N'<CodeFiveReport><Owner UnitNumber="Mixed"/></CodeFiveReport>'
select T1.C1.value('upper-case((/CodeFiveReport/Owner/@UnitNumber)[1])', 'varchar(10)') from @xml.nodes('/') T1(C1)

SET @xml.modify('
                replace value of (/CodeFiveReport/Owner/@UnitNumber)[1]
                with xs:string(upper-case((/CodeFiveReport/Owner/@UnitNumber)[1]))
                ')

select @xml

答案 1 :(得分:0)

使用XQuery函数upper-case