让SQL Server数据支持XML
2007-12-25 15:27:37 来源:WEB开发网你也可以用FOR XML子句将数据读取成XML格式,该方法从SQL Server表中返回数据,你可以把它们看做是XML数据。你可以在一个SELECT语句中运用FOR XML子句,它有三种模式可以以不同的格式来返回XML:RAW、AUTO和EXPLICIT。RAW模式将结果中的每个记录作为一个普通的行元素来返回,它被包含在一个<row/>标签中,并将每个列的值作为一个属性。AUTO模式将每个记录作为行元素返回,根据源表或视图对它进行命名。如果查询从一个表返回多个列,那么每个列的值就会被作为表元素的属性来返回。但最重要的是,如果你的SELECT语句执行了合并操作,那么AUTO模式就代表的是子行,它们作为元素嵌套在父行下。EXPLICIT模式有几个参数,你可以通过这些参数完全定义返回的XML的样式。你可以为每个元素定义标签,明确确定数据是如何嵌套的。FOR XML语句使我们不必再返回一个rowset,然后在客户端或中间层将它转换成XML了。
OPENXML函数可以让你像操作一个表那样来运用XML数据,可以将它们转换成内存中的一个rowset。要运用OPENXML,首先要调用sp_xml_preparedocument存储过程,实际上,它将XML解析成一个数据树,并将那个数据的句柄传递到OPENXML函数。然后你就可以操作那个数据了:进行查询、将它插入到表中、等等。OPENXML函数可以带有三个参数:用于XML文档内部显示的句柄、一个rowpattern参数和一个flags参数。Rowpattern参数指定了应该返回原始的XML文档中的哪些节点。Flags参数指定了以属性为中心的映射(结果集中列名符合属性名)或以元素为中心的映射(结果集中列名符合元素名)。在处理完XML数据后,我们可以调用sp_xml_removedocument将XML数据从内存中删除。
通过SQLXML得到更多的支持
通过发布SQLXML(也被称为Web版),Microsoft也在SQL Server中提供了更多的XML支持。已经有三个SQLXML的版本了,它们包含的一些额外的功能有updategram和XML Bulk Load。你可以在线下载最新的版本SQLXML 3.0(见资源)。你可以通过基于XML的模板,运用updategram来插入、更新或删除表中的数据。该模板有一个before block,它描述了记录更新前的当前状态;还有一个after block,它描述了记录的变化。下面就是updategram的一个例子,它修改了Shippers表中的一个公司的Phone字段:
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
- ››SQL SERVER无法安装成功,sqlstp.log文件提示[未发...
- ››Sql Server中通过父记录查找出所有关联的子记录
- ››SqlServer触发器、存储过程和函数
- ››SQL Server 中的事务(含义,属性,管理)
- ››Sqlite数据库插入和读取图片数据
- ››Sql server 2005拒绝了对对象 'xx表' (数...
- ››Sql server 2005拒绝了对对象 'xx表' (数...
赞助商链接