详解SQL Server 2005 FOR XML嵌套查询的使用
2009-06-11 10:31:32 来源:WEB开发网通过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如下:
- ››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 中的事务(含义,属性,管理)
更多精彩
赞助商链接