我需要在以下 XML 示例中将属性名称“TimeStamp”替换为“Timestamp”:
<CMD CommandID="6000">
<DATA>
<ReportData Key="10000">
<Event TimeStamp="2013-03-07 15:42:49.000" Name="ABC" />
<Event TimeStamp="2013-03-07 15:42:50.000" Name="DEF" />
<Event TimeStamp="2013-03-07 16:22:03.000" Name="GHI" />
<ReportData>
<DATA>
<CMD>
它存储在 SQL Server 2008 数据库中的 XML
类型列中。
我尝试了类似的方法,但它是不正确的:
DECLARE @variable NVARCHAR(20) = 'Timestamp'
UPDATE MyDatabase.dbo.MyTable
SET MyXmlColumn.modify('replace value of (/CMD/DATA/ReportData/Event/@TimeStamp) with sql:variable("@variable") ')
感谢您的帮助。
最佳答案
您可以使用replace .
update MyDatabase.dbo.MyTable
set MyXMLColumn = replace(cast(MyXMLColumn as nvarchar(max)), '<Event TimeStamp="', '<Event Timestamp="')
关于xml - 使用 SQL 查询替换 Xml 列中的属性名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15432392/