我有两张桌子,
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 是一个标识列。
但我收到以下错误,列名或提供的值的数量与表定义不匹配。
谁能帮我解决它?
我有两张桌子,
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 是一个标识列。
但我收到以下错误,列名或提供的值的数量与表定义不匹配。
谁能帮我解决它?
您能否也尝试提供列名,
declare @num...(same type as num)
insert into tblA(num, col1, col2, col3)
select @num, * from tblB
请不要担心身份列,因为它会自动填充。
只需INSERT
使用命名列,并跳过标识列 - 它将自动填充:
INSERT INTO tblA (num, col1, col2, col3) SELECT @Num, col1, col2, col3 FROM tblB
我认为错误消息非常明确:SELECT 和 INSERT 必须具有相同数量的列。
在你的情况下
declare @num...(same type as num)
insert into tblA(num,col1, col2, col3)
select @num,col1, col2, col3 from tblB
如果 key ontblA
不是自动生成的,你必须在 INSERT 中考虑它
更多信息在这里
它只是基于您的列名,它们应该是相同的类型:
insert into tblA(col1,col2,col3)
select col1,col2,col3
from tblB