详解SQL2005数据库FOR XML 嵌套查询的使用(2)_SQL SERVER数据库_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

详解SQL数据库 2005 FOR XML 嵌套查询的使用(2)

作者:黑客防线网安SQL维护基地 来源:黑客防线网安SQL维护基地 浏览次数:0

本篇关键词:查询使用数据库详解
黑客防线网安网讯:  了解了TYPE指令的功能后,就可以来看FOR XML查询带给开发者的更多惊喜。以示例数据库的产品表(Production.Product)和产品分类子类表(Production.ProductSubcategory)为例进行演示。  编...

  了解了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如下:


  WITH XMLNAMESPACES (DEFAULT 'http://blog.csdn.net/zhzuo')
  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,ROOT('Message');

 

    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-10859-1.html
网站维护教程更新时间:2012-03-21 03:11:32  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer