xml - 使用 SQL 查询替换 Xml 列中的属性名称

标签 xml sql-server-2008

我需要在以下 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/

相关文章:

android - 抽屉导航 : setNavigationItemSelectedListener is not working.

python - 使用Python多行解析Xml

Android xml-样式表解析

sql-server - SQL Server 2008 - 多个级联 FK - 我需要触发器吗?

c# - 首先使用 EF 代码将 datetime2 数据类型转换为 datetime 数据类型错误?

sql-server-2008 - 如何使用 Lucene.NET 帮助在 Stack Overflow 等网站上实现搜索?

sql - 如何在sql server中找到这个模式?

python - 如何通过 Python 向 eBay API 发送有效的 XML POST 请求?

xml - 命名空间 URI 究竟是什么意思?

c# - sql server 24/7 插入删除选择性能