使用存储过程将新数据插入 table
Insert new data to a table with stored procedure
我试图使存储过程将数据插入 table:
create procedure AddEmployee
(
@FirstName nvarchar(20)
, @LastName nvarchar(20)
, @BirthDate datetime
, @Country nvarchar(15)
, @City nvarchar(15)
)
as
insert into Employees
values (@FirstName, @LastName, @BirthDate, @Country, @City)
go
但是当我 运行 它时,我收到错误消息:
Msg 213, Level 16, State 1, Procedure AddEmployee, Line 2 [Batch Start Line 17]
Column name or number of supplied values does not match table definition.
我看了这个问题,但没有解决我的问题:
Create a stored procedure to insert new data into a table
使用插入时,总是包括列名称:
create procedure AddEmployee (
@FirstName nvarchar(20) ,
@LastName nvarchar(20) ,
@BirthDate datetime,
@Country nvarchar(15),
@City nvarchar(15)
) as
begin
insert into Employees (FirstName, LastName, BirthDate, Country, City)
values (@FirstName, @LastName, @BirthDate, @Country, @City);
end;
虽然 SQL 允许您省略列名,但您最好将它们包括在内。这对于学习该语言的人来说尤为重要,因此他们可以学习更安全的做事方式。
我试图使存储过程将数据插入 table:
create procedure AddEmployee
(
@FirstName nvarchar(20)
, @LastName nvarchar(20)
, @BirthDate datetime
, @Country nvarchar(15)
, @City nvarchar(15)
)
as
insert into Employees
values (@FirstName, @LastName, @BirthDate, @Country, @City)
go
但是当我 运行 它时,我收到错误消息:
Msg 213, Level 16, State 1, Procedure AddEmployee, Line 2 [Batch Start Line 17]
Column name or number of supplied values does not match table definition.
我看了这个问题,但没有解决我的问题: Create a stored procedure to insert new data into a table
使用插入时,总是包括列名称:
create procedure AddEmployee (
@FirstName nvarchar(20) ,
@LastName nvarchar(20) ,
@BirthDate datetime,
@Country nvarchar(15),
@City nvarchar(15)
) as
begin
insert into Employees (FirstName, LastName, BirthDate, Country, City)
values (@FirstName, @LastName, @BirthDate, @Country, @City);
end;
虽然 SQL 允许您省略列名,但您最好将它们包括在内。这对于学习该语言的人来说尤为重要,因此他们可以学习更安全的做事方式。