我有两个表,表1是T_MeterOrigValue,每个小时会新存入6000条数据,表2是备份表T_MeterOrigValue_bak,我是每个小时定时将表1中的数据处理完后转存到表2,然后删除表1中的数据(这里不能用truncate或者全部删除)。现在我的删除语句如下:
- SQL code
delete from T_MeterOrigValue where F_OrigValueID in (select F_OrigValueID from T_MeterOrigValue_bak);
表2 T_MeterOrigValue_bak 中的数据量非常大,有上千万条,F_OrigValueID为主键。
请问这样的删除语句怎么写比较好?
------解决方案--------------------
- SQL code
--封装到,try catch里面begin trybegin tran insert into T_MeterOrigValue_bak select * from T_MeterOrigValue where (F_OrigValueID like '350100A100%' or F_OrigErrCode<>'A');commit tranend trybegin catchselect error_number()rollback tranend catch--没有在查询分析器里写..直接在这写了..大致就这个思路