Вы можете просто обновить все столбцы каждый раз.Вы просто обновляете те же значения, когда данные не меняются.
CREATE PROCEDURE UpdateEmployee(
@EmployeeId int,
@EmployeeName varchar(250),
@TeamName varchar(250),
@Title varchar(250),
@ReportingManager int,
@Salary decimal(18,4)
)
UPDATE Employees SET
EmployeeName = ISNULL( @EmployeeName , EmployeeName ),
TeamName = ISNULL( @TeamName , TeamName ),
Title = ISNULL( @Title , Title ),
ReportingManager = ISNULL( @ReportingManager, ReportingManager),
Salary = ISNULL( @Salary , Salary )
WHERE EmployeeId = @EmployeeId;
Однако вы можете упустить что-то важное.Чтобы отслеживать эти изменения и сохранять достоверность информации, вам нужна дополнительная таблица, которая может отслеживать все изменения.Представьте, что у менеджера отличные результаты, поэтому он перешел в известную команду, которая не преуспела.Сразу после этого кто-то просматривает результаты по командам и показывает этому менеджеру плохие результаты из-за его новой команды.Это приводит к тому, что менеджер увольняется или теряет бонус.
Вам необходимо убедиться, что ваша база данных может отображать точную историю, а информация достоверна.Это не может быть достигнуто с помощью ярлыков.Создайте новую процедуру для каждого события, но, что более важно, попросите кого-нибудь правильно спроектировать базу данных.