将表附加到现有表:SQL Server

npe*_*ira 6 sql sql-server sql-server-2012

我有一个A包含两列的表,我想将其附加到另一个表中B,我该怎么做?它们具有完全相同的行。软件是SQL Server 2012.

编辑(来自评论的尝试代码):

INSERT INTO B_table([Column 0], [Column 1])
    SELECT [Column 0], [Column 1]
    FROM [dbo].[A] ;
Run Code Online (Sandbox Code Playgroud)

Gor*_*off 7

基本形式是:

insert into tableB(col1, col2)
    select col1, col2
    from tableA;
Run Code Online (Sandbox Code Playgroud)

例如,如果您对列有唯一约束并且insert违反了此约束,则这可能不起作用。

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

select col1, col2 from tableB union all
select col1, col2 from tableA;
Run Code Online (Sandbox Code Playgroud)

编辑:

目标似乎是添加第一列tableB。您可以通过添加列然后更新值来做到这一点:

alter table tableB add col1 . . . ;
alter table tableB add col2 . . . ;
Run Code Online (Sandbox Code Playgroud)

. . .是列的定义。

然后做:

update b
    set col1 = a.col1, col2 = b.col2
    from tableb b join
         tablea a
         on b.joinkey = a.joinkey;
Run Code Online (Sandbox Code Playgroud)

如果您没有用于加入的列,那么您就有问题了。SQL 中的表本质上是无序的,因此无法将值从 的特定行分配A到 的特定行B


Cho*_*ang 6

尝试这个:

INSERT INTO tbl1 SELECT * FROM tbl2;
Run Code Online (Sandbox Code Playgroud)