我有一个表A
,其中有两列我想要附加到另一个表B
,我该怎么做?它们具有完全相同的行。软件为SQL Server 2012
。
EDIT(来自评论的尝试代码):
INSERT INTO B_table([Column 0], [Column 1])
SELECT [Column 0], [Column 1]
FROM [dbo].[A] ;
答案 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
答案 3 :(得分:0)
如果新表尚不存在,您必须先创建它,或使用表格:
Select [Column list] Into [NewTableName] From [oldTableName]
,
,如
Select col1, col2
Into NewTable
From OldTable