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

  

  在项目中,我们时候会遇到一些诸如一次性提交许多数据的时候,从惯性思维上来讲,我们首先想到的是循环。但是在此存在一个问题,若数据很多的时候,当前用户操作之后,会一直停留在当前页面,直到提交完成之后才能进行其他的操作,这样对于用户的体验度不好,同时对于程序和数据库之间产生了压力。这时对于我们来说,就急需的要找一个来替代好的方式来替代此方法。经过对他们的请教,发现了一次性提交数据的方式,那就是讲数据以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. 2.VS2010C++各种后缀说明

    相关资料:"http://blog.csdn.net/kibaamor/article/details/18700607""http://blog.chinaunix.n ...

  2. C++11之使用或禁用对象的默认函数

    [C++11之使用或禁用对象的默认函数] C++11 允许显式地表明采用或拒用编译器提供的内置函数.例如要求类型带有默认构造函数,可以用以下的语法: 另一方面,也可以禁止编译器自动产生某些函数.如下面 ...

  3. python 应用xml.dom.minidom读xml

    xml文件 <?xml version="1.0" encoding="utf-8"?> <city> <name>上海&l ...

  4. HDU 2256 Problem of Precision (矩阵快速幂)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2256 最重要的是构建递推式,下面的图是盗来的.貌似这种叫共轭数. #include <iostr ...

  5. Mac配置JAVA_HOME

    首先打开终端,输入/usr/libexec/java_home,看到 /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home 说 ...

  6. HDU 5707 Combine String (DP,LCS变形)

    题意:给定三个字符串,问你第三个是不是由第一个和第二个组成的. 析:当时比赛是没有做出来啊...一直WA,就是没有判断长度,第一个和第二个和是不是和第三个一样,这个忘记... 我们用d[i][j]表示 ...

  7. hdoj 5389 Zero Escape

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5389 大体题意是:有两个门A和B,还有一群人,每个人都有一个数字, 疯了一样的T..比赛的时候十连T也 ...

  8. SQL2005/8数据库提示单个用户无法操作的解决方法

    原因分析: 是操作数据库的用户被锁定了,思路是通过查找目标用户,将其解锁即可,可是这样太麻烦了. 解决办法执行如下sql: USE master;  GO  DECLARE @SQL VARCHAR( ...

  9. ASP.NET MVC- 解决HTML转码

    在MVC里从Controller发送一段带有HTML的文字到View视图时,MVC是会将这段代码进行转码的. 一.使用MvcHtmlString转HTML转码 如果想不让这段文字进行转码,以HTML的 ...

  10. [hihoCoder]#1039 : 字符消除

    Description 小Hi最近在玩一个字符消除游戏.给定一个只包含大写字母"ABC"的字符串s,消除过程是如下进行的: 1)如果s包含长度超过1的由相同字母组成的子串,那么这些 ...