【问题标题】:How do I append / merge additional XML into an existing XML field in SQL Server 2005如何在 SQL Server 2005 中将其他 XML 附加/合并到现有 XML 字段中
【发布时间】:2009-04-28 16:55:10
【问题描述】:

我在 SQL Server 2005 中有一个列,它存储了一个简单的 XML 块。稍后执行处理,我需要将一些处理信息合并到 XML 中。

虽然我可以在中间点执行此操作,但我更愿意将此方法集中在负责更新其他字段后处理的存储过程中。

Here's an example 我开始使用的 XML 以及我想要实现的结果类型。谁能提供一些粗略的 SQL 来实现它?

更新:终于明白了!有机会我会发布完整的解决方案,这已经足够了,希望其他人会发现它有用

全部完成! 最后,我有几个额外的要求,需要我重新设计 Marc 建议的解决方案并完全放弃 .modify() 函数;然而,他的回答让我克服了最初的障碍,让我能够退后一步,发现更简单的方法。 Here's my final solution!

【问题讨论】:

  • 否 - 修改 SQL XML DML 在 SQL Server 2005 中也可用!
  • 不过,您需要非常小心您的外壳!该方法称为“修改”(全部小写) - NOT“修改”。
  • 啊! Red-Gate SQL Prompt 会自动将其大写。 :-D SHIGGITY! :-D
  • 我一直强烈地向 Red-Gate 抱怨这种行为 - 到目前为止运气不佳:-( 暂时关闭 SQLPrompt,或者再次手动将其全部小写。
  • 我已经很接近了,但仍在与错误作斗争。最新的仍然与尝试在插入语句中动态设置 XML 有关。您可以建议任何特定的方法吗?

标签: sql xml sql-server-2005 stored-procedures


【解决方案1】:

这个怎么样:

update yourTable
set (your XML column).modify('insert <processingData id="guid" someAttrib="x" /> as last into /someData[1]')
where .......

应该可以的。

有关如何在 SQL Server 2005 及更高版本中处理 XML 的更多详细信息,我将继续返回 this article at 15 seconds,它很好地展示了如何使用 XML DML 在 SQL 服务器字段中插入、修改和删除 XML 片段声明。

马克

【讨论】:

  • 很好的链接 :-) 但不幸的是,SQL Server 2005 不支持 Modify() 函数
  • SQL Server 2005 肯定支持!我几乎每天都用它……你为什么这么说??
  • 链接已失效。 (我刚到 CodeGuru.com)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-02
  • 1970-01-01
  • 2014-09-30
  • 2012-03-02
  • 2013-01-18
  • 2019-05-08
相关资源
最近更新 更多