首页 > 数据库技术 > 详细

SQL操作XML

时间:2014-01-25 14:00:26      阅读:344      评论:0      收藏:0      [点我收藏+]

  前面一段时间为了赶项目的进度,一直在加班,现在空闲了下来将前面碰到的问题整理了一下,发现了一些十分有用的,在此记录下来,看能不能帮助到遇到同样问题的朋友,此文仅是自己个人的意见,若存在问题,还望不宁赐教。

  

  在项目中,我们时候会遇到一些诸如一次性提交许多数据的时候,从惯性思维上来讲,我们首先想到的是循环。但是在此存在一个问题,若数据很多的时候,当前用户操作之后,会一直停留在当前页面,直到提交完成之后才能进行其他的操作,这样对于用户的体验度不好,同时对于程序和数据库之间产生了压力。这时对于我们来说,就急需的要找一个来替代好的方式来替代此方法。经过对他们的请教,发现了一次性提交数据的方式,那就是讲数据以xml的形式进行提交。这样只进行一次提交而完成了所以数据的操作。但是可能这会给数据库带来一定的压力,目前为止,自己还未想到更好的办法,希望有更好的方式我们大家能进行分享,下面若有错的地方,还请大家提出。

  

  在sql中,数据类型相信大家都是十分的 清楚,总共有25种。通常我们也常使用其中对应的。但是对于xml好像自己却是没看到,下面就是一些对于xml的一些常用的操作:

  1.在程序中将数据进行xml的拼接,在此适自己情况而定,我当前情况是如此的

  

1
DECLARE @Xml xml=‘<br><Rates value = "99" OperationUserID="110"><br> <Rate><br>  <Name last="a">aaa</Name><br>  <UserID>126</UserID><br> </Rate><br> <Rate><br>  <Name last="b">bbb</Name><br>  <UserID>125</UserID><br> </Rate><br> <Rate><br>  <Name last="c">ccc</Name><br>  <UserID>123</UserID><br> </Rate><br> <Rate><br>  <Name last="d">ddd</Name><br>  <UserID>124</UserID><br> </Rate><br></Rates>‘

   首先从根节点看下来,先获取当前根节点上的属性

  

1
2
SELECT @Xml.value(‘(/Rates/@value)[1]‘,‘int‘) AS Value
    ,@Xml.value(‘(/Rates/@OperationUserID)[1]‘,‘int‘) AS OperationUserID

   然后从根节点看下来,获取根节点下面的节点信息

  

1
SELECT T.c.value(‘Name[1]‘,‘varchar(20)‘)<br> ,T.c.value(‘UserID[1]‘,‘int‘)<br> ,T.c.value(‘(Name[1]/@last)[1]‘,‘varchar(20)‘)<br>FROM @Xml.nodes(‘/Rates/Rate‘) T(c)

   接下来的就是你取出数据之后,对数据进行的操作了,在这里我就不在献丑了,视自己的情况而定吧。

  在此只列出了我在项目中遇到的情况,相信还有其他的一些方式,希望能有这方面兴趣的朋友,我们能共同的分享。有什么错的地方,还望指出。

  

SQL操作XML

原文:http://www.cnblogs.com/zcy-xy/p/3532848.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!