SQL Server 2005第8章.ppt

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SQL Server 2005第8章

管理服务器上的XML架构集合 SQL Server使用XML数据类型对XML数据进行本机存储。你可以选择通过XML架构集合将XSD架构与XML类型的变量或列关联。XML架构集合存储导入的XML架构,然后用于执行以下操作: 验证XML实例 类型化在数据库中存储的XML数据 请注意,XML架构集合是一个类似于数据库表的元数据实体。你可以创建、修改和删除它们。CREATE XML SCHEMA COLLECTION (Transact-SQL)语句中指定的架构将自动导入到新建的XML架构集合对象中。通过使用ALTER XML SCHEMA COLLECTION (Transact-SQL)语句可以将其他架构或架构组件导入到数据库中的现有集合对象。 使用FOR XML和OPENXML发布和处理XML数据 可以执行SQL查询将结果返回为XML,而不是标准行集。这些查询可以直接执行,也可以从存储过程和用户定义函数中执行。若要直接检索结果,首先要使用SELECT语句的FOR XML子句。然后,在FOR XML子句中,指定XML模式:RAW、AUTO、EXPLICIT或PATH。 例如,下面的SELECT语句将从AdventureWorks数据库的Sales.SalesOrderHeader表和Sales.Customer表中检索信息。此查询在FOR XML子句中指定了AUTO模式: USE AdventureWorks GO SELECT Cust.CustomerID, OrderHeader.CustomerID, OrderHeader.SalesOrderID, OrderHeader.Status, Cust.CustomerType FROM Sales.Customer Cust INNER JOIN Sales.SalesOrderHeader OrderHeader ON Cust.CustomerID = OrderHeader.CustomerID FOR XML AUTO 虽然可以使用FOR XML子句检索XML文档形式的数据,但也可以使用Transact-SQL OPENXML函数插入以XML文档形式表示的数据。 OPENXML是一个行集提供程序,类似于表或视图,提供内存中XML文档上的行集。OPENXML通过提供XML文档内部表示形式的行集视图,允许访问XML数据,就像它是关系行集一样。行集中的记录可以存储在数据库表中。 OPENXML可在用于指定源表或源视图的SELECT和SELECT INTO语句中使用。 下面的示例说明了OPENXML在INSERT和SELECT语句中的用法。示例XML文档包含Customers和Orders元素。 -- 在创建表中使用OPENXML CREATE TABLE Customers (CustomerID varchar(20) primary key, ContactName varchar(20), CompanyName varchar(20)) GO CREATE TABLE Orders( CustomerID varchar(20), OrderDate datetime) GO DECLARE @docHandle int declare @XMLDocument nvarchar(max) --也可以使用XML类型 set @XMLDocument = NROOT Customers CustomerID=XYZAA ContactName=Joe CompanyName=Company1 Orders CustomerID=XYZAA OrderDate=2000-08-25T00:00:00/ Orders CustomerID=XYZAA OrderDate=2000-10-03T00:00:00/ /Customers Customers CustomerID=XYZBB ContactName=Steve CompanyName=Company2No Orders yet! /Customers /ROOT EXEC sp_XML_preparedocument @docHandle OUTPUT, @XMLDocument -- 使用OPENXML 提供由用户数据组成的行集 INSERT Customers SELECT * FROM OPENXML(@docHandle, N/ROOT/Customers) WITH Customers -- 使用OPENXML 提供由订单数据组成的行集 INSERT Orders SELECT

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档