WEB开发网
开发学院数据库MSSQL Server 在SQL Server中如何与XML交互 阅读

在SQL Server中如何与XML交互

 2008-08-28 09:57:23 来源:WEB开发网   
核心提示: 现在来分析以上这个例子:在定义好了@XmlDocument的XML文档后,然后调用系统程序sp_xml_preparedocument,在SQL Server中如何与XML交互(5),它表示在XML文档存在内存的时候,允许XML文档作为调用参数,· 具有XML列的表不能有一个

现在来分析以上这个例子:

在定义好了@XmlDocument的XML文档后,然后调用系统程序sp_xml_preparedocument,它表示在XML文档存在内存的时候,允许XML文档作为调用参数。然后就可以调用OPENXML函数。通过指定为 /ROOT/Customer 的标识要处理的 节点,读取CustomerID和ContactName的值,然后就调用系统程序sp_xml_removedocument删除SQL Server 服务器内存中的XML数据。

但在调用OPENXML函数时要注意内存的使用情况。系统程序sp_xml_preparedocument 的返回值是指向内存中XML文档的句柄。所以不要使用OPENXML加载较大的XML文档,否则可能会造成服务器的内存溢出。

3) 针对 xml 数据类型的 XQuery

XQuery 是一种可以查询结构化或半结构化 XML 数据的语言。由于 SQL Server 2005 数据库引擎中提供 xml 数据类型支持,因此可以将文档存储在数据库中,然后使用 XQuery 进行查询。

在此我们只举一个简单的例子:

  DECLARE @x xml
  SET @x = '<Myroot><Element1>First</Element1><Element2>Second</Element2>
  </Myroot>'
  SELECT @x.query('/Myroot')

输出的结果如下:

  <Myroot>
  <Element1>First</Element1>
  <Element2>Second</Element2>
  </Myroot>
  DECLARE @x xml
  SET @x = '<Myroot><Element1>First</Element1><Element2>Second</Element2>
  </Myroot>'
  SELECT @x.query('/Myroot/Element1')

输出的结果如下:

<Element1>First</Element1>

可以看到,它通过读取XML文档的节点,而输出对应的值。

XQuery功能非常强大,所涉及到的内容也非常广泛,感兴趣的读者可以查看SQL Server 2005 Books Online中的XQuery详细介绍。

尽管在SQL Server 2005中XML数据类型就象许多其它数据类型一样对待,它还是存在以下的一些限制:

· XML类型不能转换成text或ntext数据类型。

· 除了string类型,没有其它数据类型能够转换成XML。

· XML列不能应用于GROUP BY语句中。

· 分布式局部(partitioned)视图不能包含XML数据类型。

· sql_variant实例的使用不能把XML作为一种子类型。

· XML列不能成为主键或外键的一部分。

· XML列不能指定为唯一的。

· COLLATE子句不能被使用在XML列上。

· XML列不能加入到规则中。

· 唯一可应用于XML列的内置标量函数是ISNULL和COALESCE。没有任何其它内置标量函数支持使用XML类型。

· 表中最多只能拥有32个XML列。

· 具有XML列的表不能有一个超过15列的主键。

· 具有XML列的表不能有一个timestamp数据类型作为它们的主键的一部分。

· 存储在数据库中的XML仅支持128级的层次。

上一页  1 2 3 4 5 

Tags:SQL Server 如何

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