从一个表中删除记录并插入到另一个表中
Posted
技术标签:
【中文标题】从一个表中删除记录并插入到另一个表中【英文标题】:Delete Record from one table and insert into another table 【发布时间】:2015-10-25 15:15:57 【问题描述】:我有带有字段 ID 和日期的表 test1。带有主键的 ID,在另一个具有 ID 和名称字段的表 test2 中被引用。这里 Id 引用了来自 test1 的 Id。
我想从 test1 和 test2 中删除最近 3 个月的数据,并将删除的数据插入到表 test3(来自 test1)和 test4(来自 test2)中。
【问题讨论】:
奇怪的是,您只想将 2 个表中的数据存档在另外 1 个表中。为什么不是两个? @trincot 是的,我想将两个表的数据都保存到另外两个中,因为 test1 数据将进入 test3,而 test2 数据将进入 test 4。 【参考方案1】:假设表test3的结构与test1相同,test4的结构与test2相同,执行这些语句。
INSERT INTO test3
SELECT * FROM test1
WHERE Date < dateadd(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。
【讨论】:
以上是关于从一个表中删除记录并插入到另一个表中的主要内容,如果未能解决你的问题,请参考以下文章