2009-10-14 40 views

回答

29

使用在您的查詢XML

E.g:select * from table1 FOR XML AUTO

看到這一點 - >http://searchsqlserver.techtarget.com/tip/0,289483,sid87_gci1265579,00.html

或者,您也可以通過光標或在應用程序代碼中創建您的T-SQL代碼自己的XML,這樣做的更長的路。

+0

謝謝Bhaskardeep Khaund!這解決了我的問題。 – 2009-10-14 06:51:47

+1

此答案中的鏈接需要會員才能查看。 – Gibron 2012-07-26 21:44:15

36

如果您需要更多控制結果XML的外觀,請查看SQL Server 2005及更新版本中的新語句FOR XML PATH

像這樣的聲明(根據臭名昭著的Northwind數據庫):

SELECT 
    CustomerID as "@CustomerID", 
    CompanyName, 
    Address as "address/street", 
    City as "address/city", 
    Region as "address/region", 
    PostalCode as "address/zip", 
    Country as "address/country", 
    ContactName as "contact/name", 
    ContactTitle as "contact/title", 
    Phone as "contact/phone", 
    Fax as "contact/fax" 
FROM Customers 
FOR XML PATH('Customer') 

會導致類似這樣的輸出:

<Customer CustomerID="ALFKI"> 
    <CompanyName>Alfreds Futterkiste</CompanyName> 
    <address> 
     <street>Obere Str. 57</street> 
     <city>Berlin</city> 
     <zip>12209</zip> 
     <country>Germany</country> 
    </address> 
    <contact> 
     <name>Maria Anders</name> 
     <title>Sales Representative</title> 
     <phone>030-0074321</phone> 
     <fax>030-0076545</fax> 
    </contact> 
    </Customer> 

這是相當棘手得到任何其他方式...

Marc

+0

如何做相反的事情,即將XML轉換回表格 – 2017-12-14 04:57:29

+0

@RaihanIqbal:使用'.query()','.nodes()'和'.value(查看T-SQL中的內置XQuery支持) )',你當然可以做到這一點 - 但這是一個完全不同的問題:-) – 2017-12-14 05:37:49