我有一个简单的表,想要将其内容存储到硬盘上的xml中。整个表应该有一个根元素,每个表行一个元素,每个表列一个子元素。
我有什么可能性?
非常感谢 托马斯
答案 0 :(得分:46)
如果您需要更多地控制生成的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>
任何其他方式都是相当棘手的....
马克
答案 1 :(得分:32)
在查询中使用 FOR XML 。
例如:select * from table1 FOR XML AUTO
看到这个 - &gt; http://searchsqlserver.techtarget.com/tip/0,289483,sid87_gci1265579,00.html
或者,您可以通过游标或应用程序代码在t-sql代码中创建自己的XML,这样做的时间越长。
答案 2 :(得分:0)
SELECT CAST('1' AS XML)
此sql中的查询以及放入的复制数据然后显示XML结果。