У меня есть сотрудник таблицы с около 1000 записей, я должен создать хранимую процедуру, которая принимает параметр. Параметр, скорее всего, будет того типа, который я создал «AS Table». Передав переменную таблицы в хранимую процедуру, она должна обновить определенные значения в указанных столбцах c, а изменения должны отразиться в исходной таблице Employee.
Я попытался выполнить следующие шаги:
USE testDB
GO
CREATE TYPE dbo.UpdateTableType AS TABLE(Id BIGINT NULL, Designation varchar(50) NULL, Salary varchar(50) NULL)
DECLARE @employeeTable TABLE(Id BIGINT, Designation varchar(50), Salary varchar(50))
INSERT INTO @employeeTable
VALUES
(2, 'Sales', '$8002'),
(7, 'Sales DPO', '$8007'),
(9, 'Sales Mgr', '$8009')
Select * from @employeeTable
Выше приведено для типа таблицы и табличной переменной
Теперь для хранимой процедуры, которую я пробовал,
CREATE PROCEDURE updateEmpDetails
@UpdateType UpdateTableType READONLY
AS
BEGIN
UPDATE dbo.employee
SET
dbo.employee.Designation = @UpdateType.Designation,
dbo.employee.Salary = @UpdateType.Salary
WHERE
@UpdateType.Id = dbo.employee.[Employee ID]
END
Msg 137, уровень 16, состояние 1, Процедура updateEmpDetails, строка 7 [Batch Start Line 2] Должна объявить скалярную переменную "@UpdateType"
Пожалуйста, помогите мне, где я иду не так.
Мне нужно обновить Таблица сотрудников с использованием хранимой процедуры, которая принимает переменную таблицы.
Если возможно, предоставьте мне правильный код для того же.