Код:
CREATE OR REPLACE TRIGGER SUPERMAG.SMCardFixAttr before update
ON SUPERMAG.SMCARD for each row
begin
if :old.Accepted<>:new.Accepted then
if
:new.Accepted=0
or
:new.Accepted<>2
and :new.Article<>nvl(:new.GlobalArticle,:new.Article)
then
Core.Fail((-20000-103));
end if;
end if;
if updating('IDMeasurement') or updating('DataType')
or updating('DataSubType') or updating('SubArticle')
then
if :old.Accepted<>0 then
if :old.IDMeasurement<>:new.IDMeasurement
or :old.DataType<>:new.DataType
or :old.DataSubType!=:new.DataSubType
or :old.SubArticle!=:new.SubArticle
then
Core.Fail((-20000-102));
end if;
end if;
end if;
if updating('BornIn') and :old.BornIn!=:new.BornIn then
Core.Fail((-20000-102));
end if;
end;
/
Судя по триггеру...
низя менять:
IDMeasurement - единичу измерения.
DataType - тип карточки (товар,набор и т.д)
SubArticle - связанный артикул.. (по мему)
BornIn - идентификатор присхождения карточки (т.е. в какой базе родилась)
GlobalArticle - глобальный артикул
Accepted - - низя... если карточка глобльная сделать из нее новую или временную...