详解SQL Server 2005 FOR XML嵌套查询的使用
2009-06-11 10:31:32 来源:WEB开发网 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');
输出结果:
另外,在SQL Server 2005中增加了FOR XML PATH 模式,通过使用FOR XML PATH 模式可以建立清晰灵活的Xml格式,相比使用FOR XML EXPLICIT更为简单:
WITH XMLNAMESPACES (DEFAULT 'http://blog.csdn.net/zhzuo')
SELECT ProductID AS 'Product/@ProductID',
Name AS 'Product/Name'
FROM Production.Product
WHERE ProductSubcategoryID = 9
FOR XML PATH(''),ROOT('Products');
输出结果:
Rear Derailleur
Front Derailleur
在实际应用过程中,以.NET平台应用开发为例,通过ADO.NET访问SQL Server 2005返回的Xml数据结构可以更加丰富,甚至可以做到不做Xml样式转换直接服务于上一层模块。在企业应用集成方面,以BizTalk平台为例,在调用SQL Adapter的时候可以更加灵活,降低为了制定合理Xml Schema带来的复杂性。目前,最新版本的BizTalk(2006 R2)对使用了SQL Server 2005加强FOR XML功能的存储过程或SQL语句不支持通过SQL适配器向导生成XML Schema,不过这个问题可以直接通过Visual Studio IDE编写符合实际格式的XML Schema来解决。
- ››sql server自动生成批量执行SQL脚本的批处理
- ››详解oracle超大数据库表分区只哈希分区表
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››详解Win8系统获取授权与降级策略
- ››sqlserver安装和简单的使用
- ››详解PHP会话存储方式
- ››SQL Sever 2008 R2 数据库管理
- ››SQL SERVER无法安装成功,sqlstp.log文件提示[未发...
- ››Sql Server中通过父记录查找出所有关联的子记录
- ››SqlServer触发器、存储过程和函数
- ››SQL Server 中的事务(含义,属性,管理)
更多精彩
赞助商链接