将表附加到现有表:SQL Server

时间:2014-04-26 21:46:09

标签: sql sql-server sql-server-2012

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

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

INSERT INTO B_table([Column 0], [Column 1])
    SELECT [Column 0], [Column 1]
    FROM [dbo].[A] ;

4 个答案:

答案 0 :(得分:4)

基本形式是:

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 :(得分:1)

试试这个:

INSERT INTO tbl1 SELECT * FROM tbl2;

答案 2 :(得分:0)

方法1:

INSERT INTO TestTable (FirstName, LastName)
SELECT FirstName, LastName
FROM OtherTable

方法2:

SELECT FirstName, LastName
INTO TestTable
FROM OtherTable

Source

答案 3 :(得分:0)

如果新表尚不存在,您必须先创建它,或使用表格:

Select [Column list] Into [NewTableName] From [oldTableName]

,如

Select col1, col2
Into NewTable
From OldTable