SQL查询使用XML内容更新nvarchar将缺少的属性添加到节点

SQL查询使用XML内容更新nvarchar将缺少的属性添加到节点,sql,sql-server,xml,tsql,sqlxml,Sql,Sql Server,Xml,Tsql,Sqlxml,我有一个包含XML内容的nvarchar列。不确定是否需要转换为XML。所有XML内容的格式都相同,但需要修改一些记录,其中第一个节点需要添加一个属性: <MyFirstNode SomeAttribute="value" SomeOtherAttribute="anothervalue"> 更新至: <MyFirstNode SomeAttribute="value" AddThisAttribute="nicevalue" SomeOtherAttribute="anot

我有一个包含XML内容的nvarchar列。不确定是否需要转换为XML。所有XML内容的格式都相同,但需要修改一些记录,其中第一个节点需要添加一个属性:

<MyFirstNode SomeAttribute="value" SomeOtherAttribute="anothervalue">
更新至:

<MyFirstNode SomeAttribute="value" AddThisAttribute="nicevalue" SomeOtherAttribute="anothervalue">

如何使用AddThisAttribute=nice值更新所有必需的节点?所有这些都需要相同的属性和值。

如果这实际上被解释为XML,则不必在属性列表中间插入AdthTeaTea= NealValue;一个选择是做一个简单的测试

UPDATE myTable
SET XMLColumn = REPLACE(XMLColumn, '<MyFirstNode ', '<MyFirstNode AddThisAttribute="nicevalue" ')

可能会起作用,但如果MyFirstNode以外的其他节点类型中出现其他属性,则可能会进行不必要的更改。

如果列包含XML,是否有原因使列为NVARCHAR而不是XML?我想您的选择可以归结为将其转换为XML并使用modify'insert属性AddThisAttribute{nicevalue}转换为*[1]'函数或按原样为您的列编写可能复杂的STUFF语句。我将此设置为正确答案,但这是一个nvarchar,我认为您需要将其转换为XML,然后才能将其更新为XML列。谢谢
UPDATE myTable
SET XMLColumn = REPLACE(XMLColumn, ' SomeOtherAttribute=', ' AddThisAttribute="nicevalue"  SomeOtherAttribute=')