日期:2014-05-18  浏览次数:20638 次

删除语句请教?
我有两个表,表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 try
begin tran
 insert into T_MeterOrigValue_bak
    select *
    from T_MeterOrigValue
    where (F_OrigValueID like '350100A100%' or F_OrigErrCode<>'A');
commit tran
end try
begin catch
select error_number()
rollback tran
end catch
--没有在查询分析器里写..直接在这写了..大致就这个思路