我有两张桌子,
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是一个缩进列。
但是我得到了以下错误, 列名或提供的值数与表定义不匹配。
有人可以帮我解决吗?
答案 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