SQL Server 2008中有关XML的新功能
2007-12-07 19:39:58 来源:IT专家网 戴羽
xml 数据类型还提供了一些方法,使得你可以使用它们来查询和操纵实例的XML数据。例如,你可以使用query 方法来查询xml 数据类型的一个实例的XML数据,如下面的示例所示:
| declare @x xml set @x= '<Invoices> <Invoice> <Customer>Kim Abercrombie</Customer> <Items> <Item ProductID="2" Price="1.99" Quantity="1" /> <Item ProductID="3" Price="2.99" Quantity="2" /> <Item ProductID="5" Price="1.99" Quantity="1" /> </Items> </Invoice> <Invoice> <Customer>Margaret Smith</Customer> <Items> <Item ProductID="2" Price="1.99" Quantity="1"/> </Items> </Invoice> </Invoices>' SELECT @x.query( '<CustomerList> { for $invoice in /Invoices/Invoice return $invoice/Customer } </CustomerList>') |
这个例子中的查询使用了一个XQuery 表达式,这个表达式找出文档中的每一个Invoice 元素,并返回一个包含每一个Invoice 元素的Customer元素的XML文档,如下面的示例所示:
| <CustomerList> <Customer>Kim Abercrombie</Customer> <Customer>Margaret Smith</Customer> </CustomerList> |
SQL Server 2005中的另外一个显著的与XML相关的特性是对XML索引的支持。你可以为类型化xml的列创建首要和次要的XML索引来增强XML查询性能,一个首要的XML索引是一个XML实例的所有节点的部分表示,查询处理器可以使用它来快速的找到一个XML值中的节点。在你创建了一个首要的XML索引之后,你可以创建次要的XML索引来提高特定的查询类型的性能。下面的示例创建了一个首要的XML索引,和一个PATH类型的次要XML索引,它可以提高使用XPath表达式来标识一个XML实例中的节点的查询的性能。
| CREATE PRIMARY XML INDEX idx_xml_Notes ON SalesOrders (Notes) GO CREATE XML INDEX idx_xml_Path_Notes ON SalesOrders (Notes) USING XML INDEX idx_xml_Notes FOR PATH GO |




文章评论
共有 0 位网友发表了评论 查看完整内容