Я создал триггер, и я хочу, чтобы он выполнял функцию со значением столбца, если этот столбец обновляется, в противном случае я просто хочу обновить в обычном режиме. И чтобы упростить обслуживание БД, я не хочу перечислять столбцы для обновления, потому что не хочу обновлять триггер всякий раз, когда добавляю / удаляю столбец в таблице.
CREATE TRIGGER modify_country_code
ON Location
INSTEAD OF UPDATE
AS
BEGIN
IF UPDATE(CountryCode)
BEGIN
-- This works if I am only updating the CountryCode column. But if updating
-- multiple columns, the other columns are not updated (obviously)
UPDATE Location
SET Location.CountryCode = dbo.MyFunction(inserted.CountryCode)
FROM inserted
WHERE Location.Id = inserted.Id
END
ELSE
BEGIN
UPDATE Location
-- possible to perform an update without listing the columns?
END
END