在 SQLServer 2012 TSQL 中,使用 XML RAW、XML AUTO 和 XML PATH 有什么区别 [英] In SQLServer 2012 TSQL, what's the difference of using XML RAW, XML AUTO and XML PATH
问题描述
作为标题,欢迎所有开放的思想
As the title, all open minds are welcomed
我在我的电脑上测试过,输出似乎是一样的.
I tested in my computer, the output seems to be the same.
例如.
USE BOB_DATABASE
SELECT ID, Name, First_Name, Last_Name FROM DBO.T_User
FOR XML AUTO
USE BOB_DATABASE
SELECT ID, Name, First_Name, Last_Name FROM DBO.T_User
FOR XML RAW
USE BOB_DATABASE
SELECT ID, Name, First_Name, Last_Name FROM DBO.T_User
FOR XML RAW, ELEMENTS
USE BOB_DATABASE
SELECT ID, Name, First_Name, Last_Name FROM DBO.T_User
FOR XML PATH('CUSTOMERS')
推荐答案
XML RAW :结果集中的每一行都被视为一个元素,您的列是属性.
XML RAW : each row in the result set is taken as one element with your columns being the attributes.
示例:
USE BOB_DATABASE
SELECT ID, Name, First_Name, Last_Name
FROM DBO.T_User
FOR XML RAW;
输出:
<row id="7801020202083" First_Name="John" Surname="Doe" />
<row id="9812150201082" First_Name="Samantha" Surname="Hill" />
XML AUTO : 表名就是你的元素
XML AUTO : Table names are your elements
示例:
USE BOB_DATABASE
SELECT ID, Name, First_Name, Last_Name
FROM DBO.T_User
FOR XML AUTO;
输出:
<DBO.T_USER id="7801020202083" First_Name="John" Surname="Doe" />
<DBO.T_USER id="7801020202083" First_Name="John" Surname="Doe" />
XML 路径:表格列作为子元素传递.
XML Path :Table columns are passed as child elements.
示例:
USE BOB_DATABASE
SELECT ID, Name, First_Name, Last_Name
FROM DBO.T_User
FOR XML PATH;
输出:
<row>
<id>7801020202083</id>
<First_Name>John</First_Name>
<Surname>Doe</Surname>
</row>
<row>
<id>7801020202083</id>
<First_Name>John</First_Name>
<Surname>Doe</Surname>
</row>
也请查看此博客 https://www.simple-talk.com/sql/learn-sql-server/using-the-for-xml-clause-to-return-query-results-as-xml/以便更好地分解.
Please also check out this blog https://www.simple-talk.com/sql/learn-sql-server/using-the-for-xml-clause-to-return-query-results-as-xml/ for a better breakdown.
这篇关于在 SQLServer 2012 TSQL 中,使用 XML RAW、XML AUTO 和 XML PATH 有什么区别的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!