四 XML类型方法
到此为止上面的示例已经展示了XML数据类型仅能用作一种blob类型数据但是这正是XML数据类型显示其自身力量的地方XML数据类型支持使用UDT点(myXmloperation())语法进行调用的若干方法下表中列举出所支持的方法
表格:XML数据类型方法
方法名描述query 执行一个XML查询并且返回查询的结果exists 执行一个XML查询并且如果有结果的话返回值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方法
注意你可以在表和视图列TSQL语句或存储过程的参数中使用XML
这个方法允许你指定一个要计算的Xquery或XPath表达式该方法的结果是一个XML数据类型对象它的具体语法形式如下
query(XQuery)
第一个参数总是一个Xquery表达式下面的例子使用一个查询来返回一个XML文档其中包含有关每一个小组的投球手的信息
SELECT TeamDocquery(/Team/Players/Pitcher)
FROM Team
这个语句产生如下结果
<Pitcher name=John Smoltz role=Closer />
<Pitcher name=Russ Ortiz role=Starter />
( row(s) affected)
这个query方法允许你查询和返回与你指定的表达式相匹配的结点列表该方法的真正威力来自于XQuery语法我们将在本文后面再详细讨论
[] [] [] []