9

タイトルのとおり、すべてのオープンマインドを歓迎します

私は自分のコンピューターでテストしましたが、出力は同じようです。

例えば。

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')
4

3 に答える 3

13

XML RAW : 結果セットの各行は、列が属性である 1 つの要素として取得されます。

例:

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 : テーブル名は要素です

例:

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 Path :Table 列は子要素として渡されます。

例:

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/もチェックしてください 。より良い分解。

于 2015-05-29T09:44:18.557 に答える
1

raw と auto の違い
-auto はテーブル名を使用してヘッダー名を生成し、raw は行を使用します (または、raw('myname') を使用してオーバーライドできます)

-クエリに結合がある場合、結合テーブルのサブセクションが自動作成されます

生とパスの違い

行ヘッダーでパス入力を使用する場合、列名の前に -@ 記号が付きます

- 新しいセクションでパス作成を使用する場合、列名の前に付けられた \ 記号 (結合が auto を使用する場合と同じですが、より柔軟です)

ファブの説明とわかりやすい例: http://thinknook.com/sql-server-returning-xml-results-2012-12-01/

于 2016-10-11T12:50:18.447 に答える