如何在SQL Server 2005中为XML节点添加属性

4

如果我想向根元素记录添加属性,我能从SQL侧面实现吗?

SELECT top 1 'text' as nodeA
                from test as z
FOR XML AUTO, ELEMENTS, root('record')

我希望能够生成这样的 XML 文件:
```xml

...

```
 <Root attribute="value">
     <z>
         <NodeA>text</NodeA>
     </z>
 </Root>

你能展示一下你的表格长什么样子,以及你想要的 XML 长什么样子吗? - marc_s
@mar_s 你好马克,我添加了一个更新。 - some_bloody_fool
已更新我的回复以满足您的要求... - marc_s
1
@marc_s 哎呀,我忘记标记为答案了,谢谢 Marc! - some_bloody_fool
3个回答

8

1

你的示例没有按照要求执行。

请求:

<Root attribute="someValue">
   <YourElement>
      <z>
         <NodeA>text</NodeA>
      </z>
   </YourElement>
</Root>

您的答案:

<Root>
   <YourElement Attribute="someValue">
      <z>
         <NodeA>text</NodeA>
      </z>
   </YourElement>
</Root>

我正在做类似的事情,并使用PowerShell在保存文件之前清洗它:
清洗原因1:https://connect.microsoft.com/SQLServer/feedback/details/265956/suppress-namespace-attributes-in-nested-select-for-xml-statements 清洗原因2:THIS

1
看起来你忘记了 scrub reason 2 的链接。 - j0k

0
SELECT 
      'someValue' AS '@Attribute',
      (SELECT TOP 1 
              'text' as 'z/NodeA'
               FROM dbo.Test
               WHERE....
               FOR XML PATH('YourElement')
       ) 
FOR XML PATH('ROOT');

它应该创建一个带有属性和...列表的ROOT xml。


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