我的表test1包含字段Id和Date。具有主键的ID,该主键在具有ID和名称字段的另一个表test2中被引用。这里Id从test1引用Id。
我想从test1和test2删除最近3个月的数据,并将删除的数据插入表test3(来自test1)和test4(来自test2)。
答案 0 :(得分:0)
假设表test3的结构与test1相同,而test4的结构与test2相同,则执行这些语句。
INSERT INTO test3
SELECT * FROM test1
WHERE Date < DATEPART(month, -3, GETDATE());
INSERT INTO test4
SELECT * FROM test2
WHERE ID IN (SELECT ID FROM test3);
DELETE FROM test2
WHERE ID IN (SELECT ID FROM test3);
DELETE FROM test1
WHERE ID IN (SELECT ID FROM test3);
不要忘记提交更改。如果您为此定期启动创建脚本,请确保在事务块中使用COMMIT TRANSACTION执行这些语句。