当前位置: 首页 > 互联网 > 正文

XML在SqlServer中的用处

说实话,我不擅长XML的使用,它给我的最初印象就是标签对称,有头有尾,可以有父有子,还可以加上自己属性。当然越简单的XML格式,就越容易处理。除Asp.NET中必不可少的配置文件,及代码修改配置项时使用过简单的XML操作方法,还有在LinqToXML中学习了一点操作XML的Linq技巧外,我离熟练使用XML或将XML运用到各应用场景的技能差得很远。XML更像是一个数据的容器,方便不同应用程序或系统间数据传递,正是其结构相对简单所以被广泛采用,因而在不少的网页处理中,用Js操作XML的技术也被多处应用。Js我只是了解,所以更谈不上很好运用XML,而如今越来越多的Json结构出现在网页网站之中,更多被人们接受和使用,已有超越XML之势。那么XML还有哪些妙用呢?

XML在数据库中的处理给了我们极大的方便。存储过程给我们提供了数据向数据库传递的接口,如果仅通过变量的方式,往往会将参数的数目拉的很长,又容易混淆,又或者采用拼接的方式执行SQL,直接调用,但又可能无法方便使用数据库自带的事务和各种性能,或者麻烦于拆分字符串。因此,通过XML的方式,可将各种数据结构传递到存储过程的数据库中,通过XML解析,可以方便得到各种类型的变量,更方便的还可以直接转换成表。这里需要用到SqlServer的XML处理的相关方法,比如:OPENXML,QUERY,VALUE方法等。如此,我们就可将所有处理逻辑放到数据库中去处理,虽然可能增加数据库的处理压力。但可以预见的就是业务集中在存储过程处理,方便调试,业务改动修改更快,更新升级更方便。然后,处理结果也可以方便转换成XML结构数据,方便输出。

甚至可以有大胆的假设,将所有与数据库有关的操作业务通过XML变量方式,通过SqlServer输入或输出。将网页上的数据拼接成XML结构数据传入到SqlServer,存储过程中根据XML结构读取数据或转换成临时表,再更新数据库的物理表数据,或读取数据库的物理表,转成XML格式输出到网页,运用Js转成相应格式比如网格,或绑定到网页标签控件等。甚至我们可基于一个与外部交互的SP,通过定义一个操作类型然后分派到各个内部处理的SP,这样处理实际上是将外部应用与通过此唯一SP与数据库进行数据交互。我们知道,数据库也可以进行算术或字符串的处理,集合方法用表来处理也是相当的方便,所以很多场景都可以在数据库中进行运用。也就是说,如果你采用asp.net的话,很多代码你都可以从asp.net应用程序转到Sql语言中,包括各种服务器的校验等,而前端校验就用Js来处理。在这种意义下,asp.net应用只是一个IIS的简单宿主,没有太多的代码处理。

当然SqlServer并不能处理所有的事情啦,比如数据下载,文件上传解析,图像处理等等还是要用C#代码去处理的,用XML或是数据库就无能为力,上面的想法可能更多从结构设计上去考虑的,把太多的业务处理甚至服务校验都通过XML去处理,这些让应用程序变得功能单薄了。同样的XML需要熟练的前端编程能力,这样一个既熟悉前端脚本语言,又会使用asp.net语言,还要擅长XML数据库脚本,确实需要一定的学习成本。这也只是一种想法,如果你真的非常熟练这些技术的话,可以一试。

本文固定链接: http://www.byhard.com/?p=1209 | 海纳百川

该日志由 byhard 于2014年09月10日发表在 互联网 分类下,
原创文章转载请注明: XML在SqlServer中的用处 | 海纳百川
关键字: ,
【上一篇】
【下一篇】

XML在SqlServer中的用处:目前有3 条留言

  1. 板凳
    里念:

    很少坐沙发,虽然不懂,也果断躺下!

    2014-09-11 22:47
    • byhard:

      到我这里基本能坐上沙发,哈哈。

      2014-09-11 22:52
  2. 沙发
    里念:

    那我定然会常来!

    2014-09-11 22:55