我正在根据客户端应用程序的值更新员工表。应用程序显示员工信息,员工可以在前端进行一些更改,然后点击更新员工信息。尽管应用程序提交了所有字段的数据,但我希望 SQL 仅更新已更改的字段/列。
例如,staff_members表有first_name、last_name、date_of_birth、phone_number。应用程序将提交所有这些字段的数据,但我希望 SQL 仅更新已更改的字段。因此,如果客户端仅修改了电话号码,我不想更新整行数据,而只想更新已更改的电话号码。我正在使用存储过程,并参数化了表中可以更新的所有列。我还希望能够在另一个表中仅针对已修改的字段写入更新日志。
UPDATE staff_members
SET [first_name] = @FirstName
,[last_name] = @LastName
,[date_of_birth] =@DateOfBirth
,[phone_number] = @PhoneNumber
WHERE staff_id=5
上面的方法有效,但我只想更新已更改的列,而不是整行数据。我也无法写入更改值的日志,因为我无法确定用户实际修改了哪些列。