- Rongsen.Com.Cn 版权所有 2008-2010 京ICP备08007000号 京公海网安备11010802026356号 朝阳网安编号:110105199号
- 北京黑客防线网安工作室-黑客防线网安服务器维护基地为您提供专业的服务器维护,企业网站维护,网站维护服务
- (建议采用1024×768分辨率,以达到最佳视觉效果) Powered by 黑客防线网安 ©2009-2010 www.rongsen.com.cn
 
  
    
| 作者:黑客防线网安SQL维护基地 来源:黑客防线网安SQL维护基地 浏览次数:0 | 
了解了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'); 
| 我要申请本站:N点 | 黑客防线官网 | | 
| 专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479 |