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

  

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

  

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

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

  

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

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

  

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

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

  

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

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

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

  

SQL操作XML的更多相关文章

  1. sql操作xml小总结

    一.前言 SQL Server 2005 引入了一种称为 XML 的本机数据类型.用户可以创建这样的表,它在关系列之外还有一个或多个 XML 类型的列:此外,还允许带有变量和参数.为了更好地支持 XM ...

  2. C#和SQL操作Xml

    #region DataTableToXml        public static string DataTableToXml(System.Data.DataTable Dt)        { ...

  3. (转)SQL对Xml字段的操作

    T-Sql操作Xml数据 一.前言 SQL Server 2005 引入了一种称为 XML 的本机数据类型.用户可以创建这样的表,它在关系列之外还有一个或多个 XML 类型的列:此外,还允许带有变量和 ...

  4. SQL对Xml字段的操作

    转:http://www.cnblogs.com/youring2/archive/2008/11/27/1342288.html T-Sql操作Xml数据 一.前言 SQL Server 2005 ...

  5. SQL Server 操作XML数据

    .xml.exist 输入为XQuery表达式,返回0,1或是Null.0表示不存在,1表示存在,Null表示输入为空 .xml.value 输入为XQuery表达式,返回一个SQL Server标量 ...

  6. (轉載)sql server xml字段的操作

    原文轉自:http://blog.csdn.net/hliq5399/article/details/8315373 另外可參考:https://msdn.microsoft.com/en-us/li ...

  7. sql server 操作xml例子

    sql server 操作xml例子 /* sql xml 入门: --by jinjazz --http://blog.csdn.net/jinjazz 1.xml: 能认识元素.属性和值 2.xp ...

  8. 一个由正则表达式引发的血案 vs2017使用rdlc实现批量打印 vs2017使用rdlc [asp.net core 源码分析] 01 - Session SignalR sql for xml path用法 MemCahe C# 操作Excel图形——绘制、读取、隐藏、删除图形 IOC,DIP,DI,IoC容器

    1. 血案由来 近期我在为Lazada卖家中心做一个自助注册的项目,其中的shop name校验规则较为复杂,要求:1. 英文字母大小写2. 数字3. 越南文4. 一些特殊字符,如“&”,“- ...

  9. SqlServer简单的操作XML以及SQl的 try catch等统一格式

    1:SqlServer简单的操作XML: ALTER PROCEDURE [dbo].[SP_CRM_FranchiseeRecharge_Money] @Create_By VARCHAR(), @ ...

随机推荐

  1. 给Asp.net MVC Forms 验证设置角色访问控制

    当我们使用Asp.net MVC Forms方式验证用户, 然后设置Controller 或 Action 的 Authorize属性时, 默认情况下只有Users属性可以设置(这里的Users通常是 ...

  2. CentOS6.5(带图形安装)在使用过程中遇到的一些网络问题迷惑

    比如,经常会遇到这样的问题************************** [root@SourceCompiler local]# pwd/usr/local[root@SourceCompil ...

  3. gcc -D

    [gcc -D] -D name Predefine name as a macro, with definition 1. 通常debug和release版的区别就在于是否有DEBUG宏,DEBUG ...

  4. hdu 1260 Tickets

    http://acm.hdu.edu.cn/showproblem.php?pid=1260 题目大意:n个人买票,每个人买票都花费时间,相邻的两个人可以一起买票以节约时间: 所以一个人可以自己买票也 ...

  5. iOS 中self和super如何理解?

    或许你理解self和super都是指的是类的对象   self指的是本类的对象,而super指的是父类的对象,但是事实情况呢,可能有些和你想象的不一样? 简单看下下面例子: @interface Pe ...

  6. ruby中实例变量、类变量等等的区别和联系

    ruby的变量有局部变量,全局变量,实例变量,类变量,常量. 1.局部变量 局部变量以一个小写字母开头或下划线开头 局部变量有局部作用域限制(比如一个block内),它的作用域起始于声明处,结束于该声 ...

  7. 数据库连接池 c3p0 demo 代码和分析

    import java.sql.Connection; import java.sql.SQLException; import java.beans.PropertyVetoException; i ...

  8. 小巧实用js倒计时

    <script type="text/javascript">     var intDiff = parseInt(15); //倒计时总秒数量     functi ...

  9. c++常见输入方法[持续更新]

    字符串输入 cin>> 使用空格确认字符串结束位置,保留换行符在输入队列当中 单个字符读取 cin.get(), cin.get(char) 每次读取一行: cin.getline(cha ...

  10. (剑指Offer)面试题21:包含min函数的栈

    题目: 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数. 在该栈中,调用min,push,pop的时间复杂度都是O(1) 思路: 1.除了原来的栈s,增加一个辅助栈s_min,用 ...