从 SQL Server 表以正确的语法生成 XML

Generate XML in proper syntax from SQL Server table(从 SQL Server 表以正确的语法生成 XML)
本文介绍了从 SQL Server 表以正确的语法生成 XML的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

如何写一条SQL语句生成这样的XML

How to write a SQL statement to generate XML like this

<ROOT>
  <Production.Product> 
     <ProductID>1 </ProductID>
     <Name>Adjustable Race</Name>
     ........
  </Production.Product>
</ROOT>

目前我正在使用

SELECT * FROM Production.Product
    FOR XML auto

结果是:

<ROOT>
   <Production.Product ProductID="1" Name="Adjustable Race" 
       ProductNumber="AR-5381" MakeFlag="0" FinishedGoodsFlag="0" 
       SafetyStockLevel="1000" ReorderPoint="750" StandardCost="0.0000" 
       ListPrice="0.0000" DaysToManufacture="0" SellStartDate="1998-06-01T00:00:00" 
       rowguid="694215B7-08F7-4C0D-ACB1-D734BA44C0C8" 
       ModifiedDate="2004-03-11T10:01:36.827" />

推荐答案

一种简单的方法是使用:

One simple way would be to use:

SELECT * 
FROM Production.Product
FOR XML AUTO, ELEMENTS

然后,您的数据应存储在 节点内的 XML 元素中.

Then, your data should be stored in XML elements inside the <Production.Product> node.

如果您需要更多控制,那么您应该查看 FOR XML PATH 语法 - 查看关于 SQL Server 2005 中 FOR XML 的新增功能 解释了 FOR XML PATH (以及其他新功能).

If you need even more control, then you should look at the FOR XML PATH syntax - check out this MSDN article on What's new in FOR XML in SQL Server 2005 which explains the FOR XML PATH (among other new features).

基本上,使用 FOR XML PATH,您可以非常轻松地控制事物的呈现方式 - 作为元素或作为属性 - 类似于:

Basically, with FOR XML PATH, you can control very easily how things are rendered - as elements or as attributes - something like:

SELECT 
    ProductID AS '@ProductID',  -- rendered as attribute on XML node
    Name, ProductNumber,        -- all rendered as elements inside XML node
    .....
FROM Production.Product
FOR XML PATH('NewProductNode')   -- define a new name for the XML node 

这会给你类似的东西:

<NewProductNode ProductID="1">
   <Name>Adjustabel Race</Name>
   <ProductNumber>AR-5381</ProductNumber>
   .....
</NewProductNode> 

这篇关于从 SQL Server 表以正确的语法生成 XML的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

相关文档推荐

Union in SQL while creating XML file(创建 XML 文件时在 SQL 中联合)
strange behavior of SQL Server when sum nodes#39;s values in XML(对 XML 中的节点值求和时 SQL Server 的奇怪行为)
How to update a SQL table column with XML data(如何使用 XML 数据更新 SQL 表列)
How To Save XML Query Results to a File(如何将 XML 查询结果保存到文件)
Extracting XML sub-tags from a clob in Oracle via SQL(通过 SQL 从 Oracle 中的 clob 中提取 XML 子标签)
installed Xampp on Windows 7 32-bit. Errors when starting(在 Windows 7 32 位上安装 Xampp.启动时的错误)