如何在SQL Server 2005中将额外的XML追加/合并到现有的XML字段中

5
我在SQL Server 2005中有一个存储简单XML块的列。稍后将进行处理,需要将一些处理信息合并到XML中。
虽然我可以在中间点执行此操作,但我更喜欢将此方法集中在负责更新其他字段的存储过程中。
这里是我要开始的XML的示例,以及我想要实现的类型的结果。有人能提供一些粗略的SQL来实现它吗?
更新:终于搞定了!我会在有机会时发布完整的解决方案,这足够成为某个人的有用技巧。
全部完成!最后,我有几个附加要求,需要重新设计Marc建议的解决方案,并完全放弃.modify()函数;然而,他的答案让我克服了最初的障碍,并让我能够退后一步,找到更简单的方法。这是我的最终解决方案链接

1
你需要非常小心地处理大小写!该方法名为“modify”(全小写)- 不是“Modify”。 - marc_s
啊!Red-Gate SQL Prompt正在自动将它转换为大写字母。 :-D SHIGGITY! :-D - STW
我已经向Red-Gate强烈投诉了很长时间,但到目前为止没有太多的运气 :-( 现在只需关闭SQLPrompt,或手动再次将其全部转换为小写。 - marc_s
这是我的当前错误,以防你想知道:"xml数据类型方法'modify'的使用不正确。在此上下文中需要非变异器方法。" 当我尝试执行".modify(insert {sql:variable("@XMLVar")}...."时出现该错误。 - STW
@STW,提醒一下,您的链接已经失效。 - FMFF
显示剩余2条评论
1个回答

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

就这样吧。

如果想要了解更多关于如何在SQL Server 2005及以上版本中处理XML的详细信息,我建议参考这篇文章。它非常好地展示了如何使用XML DML语句在SQL服务器字段中插入、修改和删除XML片段。

Marc


很棒的链接 :-) 但不幸的是,看起来 SQL Server 2005 不支持 Modify() 函数。 - STW
当然支持SQL Server 2005!我几乎每天都在使用它……你为什么这么说?? - marc_s
1
链接失效。(我只会跳转到CodeGuru.com) - Vaccano

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接