Вставить новые данные в таблицу с хранимой процедурой - PullRequest
0 голосов
/ 03 августа 2020

Я попытался сделать хранимую процедуру вставкой данных в таблицу:

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, состояние 1, процедура AddEmployee, строка 2 [Batch Start Line 17] Имя столбца или количество предоставленных значений не соответствует определению таблицы.

Я посмотрел на этот вопрос, но это не решило мою проблему: Создать хранимую процедуру для вставки новых данных в таблицу

1 Ответ

3 голосов
/ 03 августа 2020

При использовании вставки всегда включает имена столбцов:

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 позволяет вам опускать имена столбцов, вы должны включить их как лучшую практику . Это особенно важно для тех, кто изучает язык, поэтому они учатся более безопасным способам работы.

...