Thiago seria apenas para verificar Updates Correto? sendo assim a Adição(Add) já foi realizada no banco. Podendo fazer uma comparação dos dados que ele esta querendo modificar com os dados já inseridos na base de dados com um simples NOT IN
Exemplo:
@variavel = (select count(*) from OWOR T0 where T0.[DocEntry] = @list_of_cols_val_tab_del AND T0. [U_ART_Controle] NOT IN (SELECT R0.[U_ART_Controle] FROM OWOR ) )
IF (@variavel >0)
BEGIN
SELECT @error = 1001, @error_message = 'Troca de campo inválida.'
END
ou seja se trazer algum valor na @variavel significa que é o campo U_ART_Controle não existe nos dados já inseridos, sinificando assim que o usuario esta tentando modificar.
Só vai funcionar para Transaçoes UPDATES ( @transaction_type = 'U')
Abraços