@ marc_s правильно, если вы хотите предотвратить изменения в некоторых полях, вы должны использовать триггер или ограничить права пользователя, если вы являетесь dba. В любом случае вместо триггера AFTER я бы использовал триггер INSTEAD OF, поэтому откат транзакции не требуется.
CREATE TRIGGER triggerName
ON dbo.YourTable INSTEAD OF UPDATE, INSERT
AS
IF UPDATE(somefield)
-- do nothing or whatever
В любом случае, если вы найдете правильный ответ, примите ответ, предоставленный @marc_s, это просто что-то сверх этого ответа