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);