我知道标题可能看起来很奇怪,但这就是我想做的:
- 我有很多记录的表。
-
我想获取其中一些记录并将它们插入到其他表中。像这样的东西:
INSERT INTO TableNew SELECT * FROM TableOld WHERE ...
棘手的部分是我希望我插入的这些行也从原始表中删除。
有没有一种简单的方法可以做到这一点,因为我唯一想到的就是使用临时表来保存所选记录,然后将它们放入第二个表中并从第一个表中删除与它们匹配的行。这是一个解决方案,但是有这么多记录(超过 300 万条半),我正在寻找其他想法......
2005年以上使用OUTPUT
像这样的子句:
DELETE FROM TableOld
OUTPUT DELETED.* INTO TableNew
WHERE YourCondition
它将在单个事务中执行,并且同时完成或回滚
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)