AutoCAD 3DMAX C语言 Pro/E UG JAVA编程 PHP编程 Maya动画 Matlab应用 Android
Photoshop Word Excel flash VB编程 VC编程 Coreldraw SolidWorks A Designer Unity3D
 首页 > SQL Server

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

51自学网 http://www.wanshiok.com

 

  四、 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语法,我们将在本文后面再详细讨论。

 
 

上一篇:探讨SQL Server 2005的评价函数  下一篇:探讨SQL Server 2005.NET CLR编程