SQL实现删除数据,并把删除的数据直接插入到历史表中。

是想功能:在数据库中删除一条数据,然后在把删除的这条数据重新插入到另一个表中,同时要在表中插入删除人和删除时间。

用sql语句执行 

declare
v_fwzco t_fwzc_o%rowtype;
begin
   select fwzc_id,zcbm into v_fwzco.fwzc_id,v_fwzco.zcbm from  T_FWZC where fwzc_id='56038d65-2a41-4cf7-b136-f2cec915960f';      
   v_fwzco.BDR :='test';
   v_fwzco.BDSJ :='test';
   v_fwzco.fwzc_o_id:='dsadas';
   insert into t_fwzc_o(fwzc_id,bdr,bdsj,zcbm,fwzc_o_id) values(v_fwzco.fwzc_id,v_fwzco.bdr,v_fwzco.bdsj,
   v_fwzco.zcbm,v_fwzco.fwzc_o_id);
   update T_FWZC set jpjd=null where fwzc_id='56038d65-2a41-4cf7-b136-f2cec915960f';
end;

另一种写法:(上面的代码有可能在数据库连接字符串中不好使,就可以仿照下面的方法写。)

 var sbSQL = new StringBuilder();
                sbSQL.Append("declare ");
                sbSQL.Append("v_fwzco t_fwzc_o%rowtype;");
                sbSQL.Append("begin ");
                sbSQL.Append("select FWZC_ID,ZCBM,ZCMC,XYMC,ZCCBS,FWCQ_ID,FWBM,DEPTCODE,DEPTNAME,DWJC,SSQY,YZ,JZ,FWSL,JG,MJ,CS,GJRQ,ZCSX,DWSX,SYZT,JSZK,YT,ZRR,JD,WD, SFSCTPSP,SFZZ,CSHR,CSSJ,BGR,BGRQ,BZ,BM,XSYDW,JPJD,JPWD,DWSXHZ,SSQYHZ,ZCSXHZ,SFZZHZ,BY1,BY2,BY3,BY4,RQ,SFDTGL ,SFDTGLHZ ");
                sbSQL.Append("into v_fwzco.FWZC_ID,v_fwzco.ZCBM,v_fwzco.ZCMC,v_fwzco.XYMC,v_fwzco.ZCCBS,v_fwzco.FWCQ_ID,v_fwzco.FWBM,v_fwzco.DEPTCODE,v_fwzco.DEPTNAME,v_fwzco.DWJC,v_fwzco.SSQY,v_fwzco.YZ,v_fwzco.JZ,v_fwzco.FWSL,v_fwzco.JG,v_fwzco.MJ,v_fwzco.CS,v_fwzco.GJRQ,v_fwzco.ZCSX,");
                sbSQL.Append("v_fwzco.DWSX,v_fwzco.SYZT,v_fwzco.JSZK,v_fwzco.YT,v_fwzco.ZRR,v_fwzco.JD,v_fwzco.WD, v_fwzco.SFSCTPSP,v_fwzco.SFZZ,v_fwzco.CSHR,v_fwzco.CSSJ,v_fwzco.BGR,v_fwzco.BGRQ,v_fwzco.BZ,v_fwzco.BM,v_fwzco.XSYDW,v_fwzco.JPJD,v_fwzco.JPWD,v_fwzco.DWSXHZ,v_fwzco.SSQYHZ,");
                sbSQL.Append("v_fwzco.ZCSXHZ,v_fwzco.SFZZHZ,v_fwzco.BY1,v_fwzco.BY2,v_fwzco.BY3,v_fwzco.BY4,v_fwzco.RQ,v_fwzco.SFDTGL ,v_fwzco.SFDTGLHZ ");
                sbSQL.Append("from T_FWZC where zcbm='{0}';");
                sbSQL.Append("v_fwzco.BDR :='{1}';");
                sbSQL.Append("v_fwzco.BDSJ :='{2}';");
                sbSQL.Append("v_fwzco.fwzc_o_id:='{3}';");
                sbSQL.Append("insert into t_fwzc_o(bdr,bdsj,fwzc_o_id,FWZC_ID,ZCBM,ZCMC,XYMC,ZCCBS,FWCQ_ID,FWBM,DEPTCODE,DEPTNAME,DWJC,SSQY,YZ,JZ,FWSL,JG,MJ,CS,GJRQ,ZCSX,DWSX,SYZT,JSZK,YT,ZRR,JD,WD, SFSCTPSP,SFZZ,CSHR,CSSJ,BGR,BGRQ,BZ,BM,XSYDW,JPJD,JPWD,DWSXHZ,SSQYHZ,ZCSXHZ,SFZZHZ,BY1,BY2,BY3,BY4,RQ,SFDTGL ,SFDTGLHZ ) ");
                sbSQL.Append("values(v_fwzco.BDR,v_fwzco.BDSJ,v_fwzco.FWZC_O_ID,v_fwzco.FWZC_ID,v_fwzco.ZCBM,v_fwzco.ZCMC,v_fwzco.XYMC,v_fwzco.ZCCBS,v_fwzco.FWCQ_ID,v_fwzco.FWBM,v_fwzco.DEPTCODE,v_fwzco.DEPTNAME,v_fwzco.DWJC,v_fwzco.SSQY,v_fwzco.YZ,v_fwzco.JZ,v_fwzco.FWSL,v_fwzco.JG,v_fwzco.MJ,v_fwzco.CS,v_fwzco.GJRQ,v_fwzco.ZCSX,");
                sbSQL.Append("v_fwzco.DWSX,v_fwzco.SYZT,v_fwzco.JSZK,v_fwzco.YT,v_fwzco.ZRR,v_fwzco.JD,v_fwzco.WD, v_fwzco.SFSCTPSP,v_fwzco.SFZZ,v_fwzco.CSHR,v_fwzco.CSSJ,v_fwzco.BGR,v_fwzco.BGRQ,v_fwzco.BZ,v_fwzco.BM,v_fwzco.XSYDW,v_fwzco.JPJD,v_fwzco.JPWD,v_fwzco.DWSXHZ,v_fwzco.SSQYHZ,");
                sbSQL.Append("v_fwzco.ZCSXHZ,v_fwzco.SFZZHZ,v_fwzco.BY1,v_fwzco.BY2,v_fwzco.BY3,v_fwzco.BY4,v_fwzco.RQ,v_fwzco.SFDTGL ,v_fwzco.SFDTGLHZ);");
                sbSQL.Append("update T_FWZC set jpjd='{4}',jpwd='{5}',SFDTGL = '{6}',SFDTGLHZ = '{7}' where zcbm='{8}';");
                sbSQL.Append("end;");
                SQL = String.Format(sbSQL.ToString(), zcbm, Config.Instance.UserId, DateTime.Now.ToString(), Guid.NewGuid().ToString(), jpjd, jpwd, "1", "", zcbm);
                sc.ExecuteNonQueryAsync(SQL);
posted on 2012-10-31 13:08  小东北  阅读(1922)  评论(0编辑  收藏  举报