got*_*tqn 5 t-sql select sql-insert output sql-delete
我知道标题可能看起来很奇怪,但这就是我想要做的:
我想获得一些这些记录并将其插入其他表中.像这样的东西:
INSERT INTO TableNew SELECT * FROM TableOld WHERE ...
棘手的部分是我希望我插入的这些行也从原始表中删除.
有没有一种简单的方法可以做到这一点,因为我唯一想到的就是使用临时表来保存所选记录,然后将它们放在第二个表中并从第一个表中删除与它们匹配的行.这是一个解决方案,但有这么多的记录(超过三百万和一半)我正在寻找一些其他的想法......
Ole*_*Dok 14
在2005+使用OUTPUT条款如下:
DELETE FROM TableOld
OUTPUT DELETED.* INTO TableNew
WHERE YourCondition
Run Code Online (Sandbox Code Playgroud)
它将在单个事务中执行,并且可以同时完成或回滚