“select * into table”它是否适用于将数据插入现有表中

时间:2010-04-22 04:37:57

标签: sql sql-server database sql-server-2005 tsql

我正在尝试将现有表中的数据插入到另一个现有表中。

是否可以使用select * into查询将数据插入任何现有表中。 我认为可以使用union完成,但在这种情况下,我需要将现有表的所有数据记录到临时表中,然后删除该表,最后应用union将所有记录插入到同一个表中

例如

select * into #tblExisting from tblExisting
drop table tblExisting
select * into tblExisting from #tblExisting union tblActualData

这里tblExisting是我实际想要存储所有数据的表 tblActualData是将数据附加到tblExisting的表。

这是正确的方法。 我们还有其他选择吗?

4 个答案:

答案 0 :(得分:25)

你应该试试

INSERT INTO ExistingTable (Columns,..)
SELECT Columns,...
FROM OtherTable

查看INSERT

SQL SERVER – Insert Data From One Table to Another Table – INSERT INTO SELECT – SELECT INTO TABLE

答案 1 :(得分:4)

不,您无法使用SELECT INTO将数据插入现有表格。

documentation非常清楚:

  

SELECT ... INTO在默认文件组中创建新表,并将查询中的结果行插入其中。

您通常希望避免在生产中使用SELECT INTO,因为它几乎无法控制表的创建方式,并且可能导致各种令人讨厌的锁定和其他性能问题。您应该显式创建模式并使用INSERT - 即使是临时表。

答案 2 :(得分:0)

答案 3 :(得分:0)

@Ryan Chase 您可以通过使用*?选择所有列来执行此操作 是的!

INSERT INTO yourtable2 SELECT * FROM yourtable1