WEB开发网
开发学院数据库MSSQL Server SQL2005用XML数据类型进行数据建模 阅读

SQL2005用XML数据类型进行数据建模

 2007-05-19 09:42:35 来源:WEB开发网   
核心提示: 而且,全文搜索采用单词衍生,SQL2005用XML数据类型进行数据建模(7),而 XQuery contains() 是一种字面匹配,这一区别将在下一个示例中阐述,计算列的类型可以是任何 SQL 类型,包括 XML,示例:使用单词衍生对 XML 值进行全文搜索通常情况下,不能排除示例:将全

而且,全文搜索采用单词衍生,而 XQuery contains() 是一种字面匹配。这一区别将在下一个示例中阐述。

示例:使用单词衍生对 XML 值进行全文搜索

通常情况下,不能排除示例:将全文搜索与 XML 查询结合起来中的 XQuery contains() 检查。请考虑查询:

SELECT *
FROM  T
WHERE CONTAINS(xCol,'run')

因为使用单词衍生,所以文档中的单词"ran"匹配搜索条件。而且,使用 XQuery 时不会检查搜索上下文。

在使用被全文索引的 AXSD 将 XML 分解到关系列中时,XML 视图上的 XPath 查询不会对基础表执行全文搜索。

属性提升

如果主要是对少量元素和属性值进行查询(例如,基于客户 ID 查找客户,即指定了 /Customer/@CustId 的值),您可能希望将这些数量提升到关系列中。当检索了整个 XML 实例,但只对一小部分 XML 数据进行查询时,这将很有用。在 XML 列上创建 XML 索引是没有必要的;相反,可以将被提升的列编入索引。必须编写查询以使用提升的列(即,查询优化器不会将对 XML 列的查询重新定向到提升的列)。

提升的列可以是同一表中的计算列,也可以是表中单独的、用户维护的列。当从各个 XML 实例中提升唯一值(即单值属性)时,这已足够。然而,对于多值属性,您必须为该属性创建单独的表,如下所述。

基于 XML 数据类型的计算列

可以使用能够激活 XML 数据类型方法的用户定义函数 (UDF) 来创建计算列。计算列的类型可以是任何 SQL 类型,包括 XML。以下示例说明了这一点。

示例:基于 XML 数据类型方法的计算列

为书籍的 ISBN 创建用户定义的函数:

CREATE FUNCTION udf_get_book_ISBN (@xData xml)
RETURNS varchar(20)
BEGIN
  DECLARE @ISBN  varchar(20)
  SELECT @ISBN = @xData.value('/book[1]/@ISBN', 'varchar(20)')
  RETURN @ISBN
END

上一页  2 3 4 5 6 7 8 9 10  下一页

Tags:SQL XML 数据

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接