SQL Server 2008中有关XML的新功能(2)_Mssql数据库教程

编辑Tag赚U币
教程Tag:暂无Tag,欢迎添加,赚取U币!

推荐:在SQL Server实例之间传输登录和密码
概要 在将数据库移动到新服务器后,用户可能无法登录到新服务器。相反,他们会收到下面的错误消息: Msg 18456, Level 16, State 1 Login failed for user '%ls'. 您必须将登录和密码传

你可以使用xml 数据类型来存储数据库中的文档或数据。列和变量可以用于非类型化的XML或类型化的XML,后者是对一个XML Schema 定义(XML Schema Definition ,XSD)的schema有效。如果要为数据验证进行定义,开发人员可以使用CREATE XML SCHEMA COLLECTION 语句,如下面的示例所示:

在创建了一个schema 集合后,你可以通过参照schema集合将一个xml变量或列与它所包含的schema 声明结合起来,如下面的示例所示:

CREATE TABLE SalesOrders
(OrderID integer PRIMARY KEY,
OrderDate datetime,
CustomerID integer,
OrderNotes xml)

类型化XML在插入值或更新值时对关联的schema 集合的声明进行验证,这使得可以为了遵从性检查或兼容性原因而加强关于XML数据的结构的业务规则。

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实例中的节点的查询的性能。

  CREATEPRIMARYXMLINDEXidx_xml_Notes
  ONSalesOrders(Notes)
  GO
  CREATEXMLINDEXidx_xml_Path_Notes
  ONSalesOrders(Notes)
  USINGXMLINDEXidx_xml_Notes
  FORPATH
  GO

分享:也谈如何缩小SQL SERVER日志文件
前几天也碰到日志文件过大的问题,数据库实际大小为600M, 日志文件实际大小为33M, 但日志文件占用空间为2.8G! 试了多种方式,SHIRNK DATABASE, TRUNCATE LOG FILE, 都没办法将文件缩小。无论

来源:模板无忧//所属分类:Mssql数据库教程/更新时间:2008-08-22
相关Mssql数据库教程