将表追加到现有表:SQL Server

将表追加到现有表:SQL Server,sql,sql-server,sql-server-2012,Sql,Sql Server,Sql Server 2012,我有一个带有两列的表a,我想将它们附加到另一个表B,我该怎么做?它们有完全相同的行。软件是SQL Server 2012 编辑(试图从注释中获取代码): 基本形式是: insert into tableB(col1, col2) select col1, col2 from tableA; 例如,如果列上有一个唯一的约束,并且insert违反了该约束,则这可能不起作用 这假设您确实想要将行添加到表中。如果您只想一起查看结果: select col1, col2 from tab

我有一个带有两列的表
a
,我想将它们附加到另一个表
B
,我该怎么做?它们有完全相同的行。软件是SQL Server 2012

编辑(试图从注释中获取代码):

基本形式是:

insert into tableB(col1, col2)
    select col1, col2
    from tableA;
例如,如果列上有一个唯一的约束,并且
insert
违反了该约束,则这可能不起作用

这假设您确实想要将行添加到表中。如果您只想一起查看结果:

select col1, col2 from tableB union all
select col1, col2 from tableA;
编辑:

目标似乎是添加一列
tableB
。可以通过添加列,然后更新值来执行此操作:

alter table tableB add col1 . . . ;
alter table tableB add col2 . . . ;
是列的定义

然后做:

update b
    set col1 = a.col1, col2 = b.col2
    from tableb b join
         tablea a
         on b.joinkey = a.joinkey;
如果您没有用于加入的列,那么您就有问题了。SQL中的表本质上是无序的,因此无法将值从
a
的特定行分配到
B
的特定行方法1:

INSERT INTO TestTable (FirstName, LastName)
SELECT FirstName, LastName
FROM OtherTable
方法2:

SELECT FirstName, LastName
INTO TestTable
FROM OtherTable
.

试试这个:

INSERT INTO tbl1 SELECT * FROM tbl2;

如果新表尚不存在,则必须先创建它,或使用以下表单:

从[oldTableName]中选择[Column list]进入[NewTableName]


到目前为止,您尝试了哪些操作???插入B_表([Column 0],[Column 1])从[dbo]中选择[Column 0],[Column 1]。[A]我也尝试使用空列创建表,但当我放入数据时,它会创建更多行,而不是插入空列,有关详细信息,请参见链接。@npereira。这有什么问题?可能是重复的。这假设列是相同的。(我刚刚在你的评论中看到,列数不同。)
INSERT INTO tbl1 SELECT * FROM tbl2;
Select col1, col2
Into NewTable
From OldTable