从一个表中删除记录并插入另一个表

时间:2015-10-25 15:15:58

标签: sql-server sql-server-2008

我的表test1包含字段Id和Date。具有主键的ID,该主键在具有ID和名称字段的另一个表test2中被引用。这里Id从test1引用Id。

我想从test1和test2删除最近3个月的数据,并将删除的数据插入表test3(来自test1)和test4(来自test2)。

1 个答案:

答案 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执行这些语句。