请教一个备份删除的存储过程怎么写
需求:库中包含2个表,一个是A,一个是B。(两个结构一样)
其中A会通过一个程式不停的往里面插入数据,B是用来备份A表的数据的,当A的记录数(即A表共有多少条记录)大于或等于某值时(如10000)时,则自动将按時間排的前10000條記錄备份到B中,且将已备份的数据在A删除。
------解决方案--------------------insert B
select top 1000 * from A order by timefield
delete A from (select top 1000 * from A order by timefield) as c where c.keyfield = A.keyfield
------解决方案--------------------begin tran
insert B
select top 1000 * from A order by timefield
if @@error <> 0
begin
rollback tran
return
end
delete A from (select top 1000 * from A order by timefield) as c where c.keyfield = A.keyfield
if @@error <> 0
begin
rollback tran
return
end
commit tran
------解决方案--------------------declare cou int
set @cou=count(*) from tablename
if (@cou=1000)
print '1000了 '
------解决方案--------------------你把它們放在job里執行
declare @i int
set @i=select count(*)from A
if @i> =1000
begin
insert B
select top 1000 * from A order by timefield
delete A from (select top 1000 * from A order by timefield) as c where c.keyfield = A.keyfield
end