2006-09-18

SQL Server2005的XML数据类型之基础篇

来源: 天极开发 作者:佚名 评论 0 条
 

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

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

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

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

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

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

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

  四、 XML类型方法

  到此为止,上面的示例已经展示了XML数据类型仅能用作一种blob类型数据,但是这正是XML数据类型显示其自身力量的地方。XML数据类型支持使用UDT点(myXml.operation())语法进行调用的若干方法。下表1中列举出所支持的方法。

  表格1:XML数据类型方法。

方法名描述
query 执行一个XML查询并且返回查询的结果
exists 执行一个XML查询,并且假如有结果的话返回值1
value 计算一个查询以从XML中返回一个简单的值
modify 在XML文档的适当位置执行一个修改操作
nodes 答应你把XML分解到一个表结构中

  在下面几节中,你要使用一个表Team,它的每一个行中包含一个小组的名字。在每一行中,有一个包含有关于该小组的XML数据的TeamDoc行:

CREATE TABLE Team
(
TeamID int identity not null,
TeamDoc xml DEFAULT '<Team />' NOT NULL
)

  在这些例子中,我们假定下面的XML文档存在于表中的Braves行中:

<Team name="Braves">
<Players>
<Pitcher name="John Smoltz" role="Closer"/>
<Pitcher name="Russ Ortiz" role="Starter" />
<ThirdBase name="Chipper Jones"
role="Starter" bats="switch"/>
</Players>
</Team>

  query方法

  注重:你可以在表和视图列、T-SQL语句或存储过程的参数中使用XML。

  这个方法答应你指定一个要计算的Xquery或XPath表达式,该方法的结果是一个XML数据类型对象。它的具体语法形式如下:

query(XQuery)

  第一个参数总是一个Xquery表达式。下面的例子使用一个查询来返回一个XML文档-其中包含有关每一个小组的投球手的信息:

SELECT TeamDoc.query('/Team/Players/Pitcher')
FROM Team

  这个语句产生如下结果:

----------------------------------------------
<Pitcher name="John Smoltz" role="Closer" />
<Pitcher name="Russ Ortiz" role="Starter" />
(1 row(s) affected)

  这个query方法答应你查询和返回与你指定的表达式相匹配的结点列表。该方法的真正威力来自于XQuery语法,我们将在本文后面再具体讨论。

  exist方法

  这个exist方法用于决定是否一个查询能够产生任何结果。这个exist方法的语法形式如下:

exist(XQuery)

  当你使用这个exist方法时,它计算这个XQuery查询,并且假如该查询产生任何结果的话返回值1。例如,下面语句查询小组表行中是否TeamDoc域中存有Starter投手:
共5页: 上一页 [1] 2 [3] [4] [5] 下一页
(本文仅表明作者个人观点,不代表本站及其管理员立场.) 推荐 收藏 投稿 打印 返回 关闭
上一篇:使用Microsoft SQL Server 2000的XML查询  
下一篇:MS SQLSERVER中如何快速获取表的记录总数
    评论加载中…
 推荐文章
     

网站首页  -  网站地图 -   站长论坛  -  网站投稿  -    -  网站管理
Copyright © 2008 芜湖站长站 All Rights Reserved 皖ICP备07500611号