2010-04-22 61 views
14

我想从我现有的表的一个数据插入到另一个现有工作表中。“SELECT * INTO表”将它插入数据到现有的表

是否有可能将数据插入到使用select * into查询的任何现有的表。 我认为它可以通过工会来完成,但是在这种情况下,我需要把现有的表的所有数据记录到临时表中,然后删除该表最后比应用联盟中的所有记录插入到相同的表

如。

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

这里tblExisting是我真正想要存储的所有数据 tblActualData是从那里数据被追加到tblExisting表的表。

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

+0

相关:http://stackoverflow.com/questions/4101739 – 2012-08-13 16:48:01

回答

4

不,你不能使用SELECT INTO将数据插入到现有的表。

documentation使这很清楚:

SELECT ... INTO在默认文件组中创建一个新的并从查询结果行插入到它。

通常你想避免在生产中使用SELECT INTO,因为它可以让你如何创建表的控制非常少,并且可以导致各种讨厌的锁定和其他性能问题。您应该明确创建模式并使用INSERT - 即使是临时表。

0

@Ryan Chase 您可以通过使用*选择所有列来实现这一点吗? 是的!

INSERT INTO yourtable2 SELECT * FROM yourtable1

+0

这并不提供答案的问题。你可以[搜索类似的问题](// stackoverflow.com/search),或者参考页面右侧的相关和链接问题来找到答案。如果你有一个相关但不同的问题,请[提出一个新问题](// stackoverflow.com/questions/ask),并包含一个链接来帮助提供上下文。请参阅:[提问,获得答案,没有分心](// stackoverflow.com/tour) – Bugs 2017-11-09 10:26:15