为了将数据从一个高效的表复制到另一个表,使用 INTO 还是使用 INSERT? [复制]
Posted
技术标签:
【中文标题】为了将数据从一个高效的表复制到另一个表,使用 INTO 还是使用 INSERT? [复制]【英文标题】:For copying data from one to another table which is efficient,using INTO or using INSERT? [duplicate] 【发布时间】:2013-09-16 06:09:54 【问题描述】:有两种方法可以将数据从一个表复制到另一个表。
1. First create a new table then using "
INSERT INTO TABLE2_NAME
SELECT * FROM TABEL1_NAME"
或
2. SELECT * INTO TABLE2_NAME FROM TABLE1_NAME
我使用的是 SQL Server 2012。
【问题讨论】:
【参考方案1】:它们是不同的,因为第一个需要已经创建表,第二个也将创建表。
我敢打赌,读取 TABLE1_NAME 的执行计划将是相同的,因此第二个可能会慢几毫秒,因为它必须创建表。
接下来要考虑的是创建表的位置。在第一个中,您可能已将表放在快速存储上,而在第二个中,它将转到可能会或可能不会优化的默认主存储。
如果所有条件都相同 - 那么它可能是不值得考虑的微优化。
【讨论】:
【参考方案2】:INSERT INTO TABLE2_NAME SELECT * FROM TABEL1_NAME
创建 TABLE2_NAME 并将 TABEL1_NAME 的值插入其中。它更有效,但如果表已经创建,则该语句会出错。
SELECT * INTO TABLE2_NAME FROM TABLE1_NAME
只在 TABEL2_NAME 中插入 TABLE1_NAME 的值。
【讨论】:
以上是关于为了将数据从一个高效的表复制到另一个表,使用 INTO 还是使用 INSERT? [复制]的主要内容,如果未能解决你的问题,请参考以下文章