Il devrait être possible d'utiliser deux instructions dans une même transaction, une insertion et une suppression :
BEGIN TRANSACTION;
INSERT INTO Table2 (<columns>)
SELECT <columns>
FROM Table1
WHERE <condition>;
DELETE FROM Table1
WHERE <condition>;
COMMIT;
C'est la forme la plus simple. Si vous devez vous soucier de l'insertion de nouveaux enregistrements correspondants dans table1 entre les deux instructions, vous pouvez ajouter un and exists <in table2>
.