将3个表合并为一个

时间:2017-09-05 08:08:02

标签: sql sql-server

实际上我有14个SQL Server表,其中11个可以减少到4个。

他们有相同的列名和值,我找不到合并到一个新表(我已经由SELECT INTO FROM创建)的解决方案。  还有可能添加一个增量计数器来标记带有ID的新增数据的每一行吗?

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

INSERT INTO BigNewTable ( col1, col2, col3 )
SELECT col1, col2, col3 
FROM 
(
   SELECT col1, col2, col3 FROM Table1
   UNION ALL
   SELECT col1, col2, col3 FROM Table2
   UNION ALL
   SELECT col1, col2, col3 FROM Table3
)
  

添加增量计数器

将列设为IDENTITY column

CREATE TABLE BigNewTable 
(  
 Id int IDENTITY(1,1),  
 Col1 varchar (20),  
 Col2 varchar (20),   
 Col3 varchar (20) 
);  

答案 1 :(得分:2)

如果您只想将多个源表中的数据插入到一个目标表中,只需将SELECTUNION ALL连接起来,就可以在一个语句中完成。

如果您在新目的地表中添加IDENTITY(1,1)的列,则会自动插入ID并将成为您想要的计数器。

列应定义为:ID int IDENTITY(1,1)

INSERT INTO mynewtable  ( col1, col2 )
     SELECT col1, col2
       FROM oldtable1
  UNION ALL
     SELECT col1, col2
       FROM oldtable2
  UNION ALL
     SELECT col1, col2
       FROM oldtable4
  UNION ALL
     SELECT col1, col2
       FROM oldtable4