我将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 ?
答案 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