扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:Shankar Pal 来源:microsoft 2007年9月16日
关键字: 实施策略 数据库 SQL Server SQL Server 2005
可以将结果赋给 XML 数据类型列、变量或参数。而且,可以将 FOR XML 嵌套以便生成任意层次结构。这使得嵌套的 FOR XML 比 FOR XML EXPLICIT 更加便于编写,但是对于较深的层次结构,它的性能可能不太好。FOR XML 还引入了新的 PATH 模式,该模式指定列的值应该出现在 XML 树中的哪个路径。
可以使用新的 FOR XML TYPE 指令,通过 SQL 语法来定义关系数据上的只读 XML 视图。可以通过 SQL 语句和嵌入式 XQuery 来查询该视图,如下面的示例所示。例如,您可以在存储过程中引用此类 SQL 视图。
示例:返回生成的 XML 数据类型的 SQL 视图
下面的 SQL 视图定义可在一个关系列 (pk) 以及从一个 XML 列中检索到的书籍作者上创建一个 XML 视图:
CREATE VIEW V (xmlVal) AS
SELECT pk, xCol.query('/book/author')
FROM T
FOR XML AUTO, TYPE
视图 V 包含一个行,该行只有一个列:XML 类型的 xmlValtype。可以像查询常规的 XML 数据类型实例那样查询它。例如,下面的查询将返回名字为"David"的作者:
SELECT xmlVal.query('//author[first-name = "David"]')
FROM V
SQL 视图定义在某种程度上类似于使用带有批注的架构创建的 XML 视图。然而,二者之间存在重要的区别。SQL 视图定义是只读的,并且必须通过嵌入式 XQuery 来操作;而使用带有批注的架构的 XML 视图则不是这样。而且,SQL 视图在应用 XQuery 表达式之前生成 XML 结果,而 XML 视图上的 XPath 查询在基础表上计算 SQL 查询。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者