2015-10-25 140 views
0

我有表test1,其中包含字段Id和日期。带有主键的ID在具有ID和名称字段的另一个表test2中被引用。这里Id引用来自test1的Id。从一个表中删除记录并插入另一个表

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

+0

奇怪的是,你想从2个表格中的数据存档在其他表格中。为什么不是两个? – trincot

+0

@ trincot是的,我想将两个表的数据保存到其他两个表中,因为test1数据将进入test3,test2数据将进入测试4。 – KD29

回答

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在最后执行这些语句。

相关问题