sql server编写archive通用模板脚本实现自动分批删除数据【填空式编程】

博主作过比较多项目的archive脚本编写,对于这种删除数据的脚本开发,确定是一开始的话用最简单的一个delete语句,而后因为部分表数据量比较大啊,索引比较多啊,会发现删除数据很慢并且影响系统的正常使用。而后就对delete语句进行按均匀数据量分批delete的改写,这样的话,原来的删除一个表用一个语句,就可能变成几十行,若是archive的表有十几个甚至几十个,那咱们的脚本篇幅就很是大了,增长了开发和维护的成本,不利于经验比较少的新入职同事去开发archive脚本,也容易把注意力分散到所谓分批逻辑中。sql

  根据这种状况,本周博主(zhang502219048)恰好在工做过程当中,总结并编写了一个自动分批删除数据的模板,模板固定不变,只须要把注意力集中放在delete语句中,而且能够在delete语句中控制每批删除的数据量,比较方便,经过变量组装模板sql,避免每一个表就单独写一个分批逻辑的重复代码,化简为繁,增长分批删除一个表指定数据的话只须要增长几行代码就能够(以下所示中的demo1和demo2)ide

  demo1:带参数,根据Date字段是否过时删除表B对应数据。spa

  demo2:不带参数,根据表tmp_Del删除表A对应ID的数据。索引

  具体请参考下面的脚本和相关说明,若有不懂的地方欢迎评论或私信咨询博主。 图片

图片

  ( ( ( ( ( ()  N     

   N    
,   N


     
,   
       

 sp_executesql , , N, ,  out  


     
,   
       

 sp_executesql , , N, ,  out

图片

相关文章
相关标签/搜索