我有一个名为CompanyMaster_tbl
的表,其表结构如下。
Cid CompanyName Deleted
和另一个名为DepartmentMaster_tbl
的表,其表结构如下。
dtld dtname dtphone dtemail cid deleted
我编写了一个存储过程,用于将数据插入这些表中,如下所示。
CREATE PROCEDURE [dbo].[InsertDetails](
@companyName varchar(150),
@dname varchar(150),
@dphon varchar(150),
@deleted int,
@cid int OUTPUT
) AS
BEGIN
INSERT INTO [dbo].CompanyMaster_tbl
VALUES (@companyName)
select @cid=cid
from [dbo].CompanyMaster_tbl
WHERE @@ROWCOUNT > 0 AND cid = scope_identity()
insert into DepartmentMaster_tbl
values(@dname,
@dphon)
end
当我执行此SP时,我收到的错误是这样的:
Column name or number of supplied values does not match table definition.
答案 0 :(得分:2)
试试这个,提一下列名
INSERT INTO [dbo].CompanyMaster_tbl (CompanyName )
VALUES (@companyName)
INSERT into DepartmentMaster_tbl (dname,dphon)
values(@dname, @dphon)
答案 1 :(得分:1)
你给表中给出了错误数量的值,即你在表CompanyMaster_tbl中有两列(我认为你的cid是身份(自动生成),我没有提到它)但是你只能给表一个值,同样的事情适用于DepartmentMaster_tbl。如果你不能给表中的值,那么在insert语句中提到列名,否则给出所有列值 e.g。
Insert into CompanyMaster_tbl(CompanyName) values(@companyName)
或
Insert into CompanyMaster_tbl values(@companyName, @deleted)