我正在尝试将现有表中的数据插入到另一个现有表中。
是否可以使用select * into
查询将数据插入任何现有表中。
我认为可以使用union完成,但在这种情况下,我需要将现有表的所有数据记录到临时表中,然后删除该表,最后应用union将所有记录插入到同一个表中
例如
select * into #tblExisting from tblExisting
drop table tblExisting
select * into tblExisting from #tblExisting union tblActualData
这里tblExisting是我实际想要存储所有数据的表 tblActualData是将数据附加到tblExisting的表。
这是正确的方法。 我们还有其他选择吗?
答案 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