WEB开发网
开发学院数据库MSSQL Server 详解SQL Server 2005 FOR XML嵌套查询的使用 阅读

详解SQL Server 2005 FOR XML嵌套查询的使用

 2009-06-11 10:31:32 来源:WEB开发网   
核心提示: 通过SELECT 返回的结果支持Xml方式显示,了解了TYPE指令的功能后,详解SQL Server 2005 FOR XML嵌套查询的使用(2),就可以来看FOR XML查询带给开发者的更多惊喜,以示例数据库的产品表(Production.Product)和产品分类子类表(Product

通过SELECT 返回的结果支持Xml方式显示。

了解了TYPE指令的功能后,就可以来看FOR XML查询带给开发者的更多惊喜。以示例数据库的产品表(Production.Product)和产品分类子类表(Production.ProductSubcategory)为例进行演示。

编写产品子类别为“9”的产品数据查询:

  SELECT ProductSubcategoryID,[Name] ,
  (SELECT ProductID,[Name] FROM Production.Product Product
  WHERE ProductSubcategoryID = 9
  FOR XML AUTO,TYPE) AS Products
  FROM Production.ProductSubcategory AS Category
  WHERE ProductSubcategoryID = 9
  FOR XML AUTO;

输出结果如下:

如果在产品查询子句中不提供TYPE指令,那么输出就会变成下面结果:

  " />

以上几个查询结果都没有带命名空间,不过SQL Server 2005 通过WITH XMLNAMESPACES子句提供了对命名空间的支持,下面的查询将显示一个完整的带默认命名空间的Xml文档。

  WITH XMLNAMESPACES ('uri0' as ns0)
  SELECT ProductSubcategoryID,[Name] ,
  (SELECT ProductID,[Name] FROM Production.Product Product
  WHERE ProductSubcategoryID = 9
  FOR XML RAW('ns0:Product'),TYPE) AS 'ns0:Products'
  FROM Production.ProductSubcategory AS Category
  WHERE ProductSubcategoryID = 9
  FOR XML RAW('ns0:Category'),ROOT('ns0:Message');

输出结果:

如果采用默认命名空间,编写SQL如下:

Tags:详解 SQL Server

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接