SQL实现删除数据,并把删除的数据直接插入到历史表中。
2012-10-31 13:08
260 查看
是想功能:在数据库中删除一条数据,然后在把删除的这条数据重新插入到另一个表中,同时要在表中插入删除人和删除时间。
用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);
相关文章推荐
- EF结合SqlBulkCopy实现高效的批量数据插入 |EF插件EntityFramework.Extended实现批量更新和删除
- EF结合SqlBulkCopy实现高效的批量数据插入 |EF插件EntityFramework.Extended实现批量更新和删除
- Java实现把excel xls中数据转为可直接插入数据库的sql文件
- sql语句实现重复数据只显示一次 ,或者删除重复数据
- Sage CRM 直接使用SQL插入数据须知
- Repeater获取勾选数据,拼接成SQL实现批量删除+存储过程
- SQL删除语句同时向备份表插入数据
- 【T-SQL】插入与删除大量数据
- sql语句实现从一个表的查询出某些数据插入另外一个表中
- 使用预处理语句实现插入删除修改数据
- sql实现有数据就更新,没有就插入
- MyBatis直接执行SQL查询及批量插入数据
- C#:用SqlBulkCopy来实现批量插入数据
- MySQL基本SQL语句之数据插入、删除数据和更新数据
- 【MS SQL Server】SQL删除数据(分段实现大量数据的删除操作)
- 深入理解游标Cursors,实现数据的快速查找,插入,删除,更新
- MyBatis直接执行SQL查询及批量插入数据
- 常用sql --- 插入 删除表中的数据
- SQL实现将一个表的数据插入到另外一个表的代码
- SQL--删除表数据的三种不同实现方法