use*_*187 7 sql t-sql sql-server-2012
作为标题,所有开放的思想都受到欢迎
我在我的电脑上测试过,输出似乎是一样的.
例如.
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')
Run Code Online (Sandbox Code Playgroud)
小智 11
XML RAW:结果集中的每一行都被视为一个元素,您的列是属性.
例:
USE BOB_DATABASE
SELECT ID, Name, First_Name, Last_Name
FROM DBO.T_User
FOR XML RAW;
Run Code Online (Sandbox Code Playgroud)
OUTPUT:
<row id="7801020202083" First_Name="John" Surname="Doe" />
<row id="9812150201082" First_Name="Samantha" Surname="Hill" />
Run Code Online (Sandbox Code Playgroud)
XML AUTO:表名是您的元素
例:
USE BOB_DATABASE
SELECT ID, Name, First_Name, Last_Name
FROM DBO.T_User
FOR XML AUTO;
Run Code Online (Sandbox Code Playgroud)
OUTPUT:
<DBO.T_USER id="7801020202083" First_Name="John" Surname="Doe" />
<DBO.T_USER id="7801020202083" First_Name="John" Surname="Doe" />
Run Code Online (Sandbox Code Playgroud)
XML路径:表列作为子元素传递.
例:
USE BOB_DATABASE
SELECT ID, Name, First_Name, Last_Name
FROM DBO.T_User
FOR XML PATH;
Run Code Online (Sandbox Code Playgroud)
OUTPUT:
<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>
Run Code Online (Sandbox Code Playgroud)
同时请参阅此博客https://www.simple-talk.com/sql/learn-sql-server/using-the-for-xml-clause-to-return-query-results-as-xml/ 了更好的故障.
不幸的是他们真的不一样.看看节点的布局方式.看看属性.有一些微妙的差异会对XML的使用方式产生重大影响.也许你需要控制根元素:ROOT('SomeElementName').MSDN对每个语法选项都有一个非常全面的解释. MSDN FOR XML.我发布了一些代码,可以帮助您解决差异.此外,只有在代码中进行连接时,某些语法才会有明显的更改.从而帮助您建立层次结构.
IF OBJECT_ID('tempdb..#XmlTestTable') IS NOT NULL DROP TABLE #XmlTestTable
CREATE TABLE #XmlTestTable
(
ID INT PRIMARY KEY IDENTITY(1,1),
FirstName VARCHAR(20),
LastName VARCHAR(20)
)
INSERT INTO #XmlTestTable (FirstName,LastName) VALUES
('John','Doe'),
('Jane','Doe'),
('Brian','Smith'),
('Your','Mom')
--YOUR TESTS
SELECT * FROM #XmlTestTable FOR XML AUTO
SELECT * FROM #XmlTestTable FOR XML RAW
SELECT * FROM #XmlTestTable FOR XML RAW, ELEMENTS
SELECT * FROM #XmlTestTable FOR XML PATH('Customers')
DROP TABLE #XmlTestTable
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11856 次 |
| 最近记录: |