如何将数据从一个表插入另一个表?

时间:2013-06-19 15:22:58

标签: sql-server-2008 insert

我有两张桌子,

tblA(id, num, col1, col2, col3), 
tblB(col1, col2, col3)

col1,col2和col3在两个表中都相同。现在我有以下sql:

declare @num...(same type as num)

insert into tblA
select @num, * from tblB
tblA中的

id是一个缩进列。

但是我得到了以下错误, 列名或提供的值数与表定义不匹配。

有人可以帮我解决吗?

4 个答案:

答案 0 :(得分:3)

您能否尝试提供列名称,

declare @num...(same type as num)

insert into tblA(num, col1, col2, col3)
select @num, * from tblB

请不要担心标识栏,因为它会自动填充。

答案 1 :(得分:2)

只需INSERT使用命名列,并跳过标识列 - 它将自动填充:

INSERT INTO tblA (num, col1, col2, col3) SELECT @Num, col1, col2, col3 FROM tblB

答案 2 :(得分:0)

我认为错误消息非常明确:SELECT和INSERT必须具有相同的列数。

在你的情况下

declare @num...(same type as num)

insert into tblA(num,col1, col2, col3)
select @num,col1, col2, col3  from tblB

如果tblA上的密钥未自动生成,则必须在INSERT中考虑

更多信息here

答案 3 :(得分:0)

它只是根据您的列名称,它们应该是相同的类型:

insert into tblA(col1,col2,col3)
select col1,col2,col3
from tblB