Структурно-функциональный подход к проектированию информационных технологий и автоматизированных систем с использованием САSЕ-средств. Фашрахманов Р.А - 203 стр.

UptoLike

203
Код измененного шаблона, включающий в себя специальный код (он
выделен), нужный для того, чтобы изменять значение P_Name в таблице
Product каждый раз при добавлении новой строки O_Name в таблицу
Order, показан ниже. Код вставляется сразу же после выражения
%ForEachChildRel, поскольку сущность Order является родительской в
связи между Order и Product. Для того
чтобы просмотреть расширенный
код после того, как шаблон, заданный по умолчанию, изменен, щелкните
по окну Expanded Code.
create trigger %TriggerName on %TableName
for %Actions(",")
as
/* ERwin Builtin %Datetime */
/* %Actions(",") trigger on %TableName */
/* default body for %TriggerName */
begin
declare @numrows int,
@nullcnt int,
@validcnt int,
%PKDecl(,@ins)%decl(bComma,0)%ForEachAtt() {%if(%AttIsPk)
{%=(bComma,1)} }%if (%==(%:bComma,1)) {,}
@errno int,
@errmsg varchar(255)
select @numrows = @@rowcount
%ForEachChildRel(){
%RelTemplate
%if (%==(%VerbPhrase,is requested on)){
update %Parent from %Parent,inserted
set P_Name = %Parent.P_Name
+inserted.O_Name
where
%JoinFKPK(inserted,%Parent)
}
}
%ForEachParentRel() {
%RelTemplate
}
return
error:
raiserror @errno @errmsg
rollback transaction
end
go
ERwin автоматически присваивает каждой связи режим ссылочной
целостности, устанавливаемый по умолчанию, прежде чем добавить ее в
    Код измененного шаблона, включающий в себя специальный код (он
выделен), нужный для того, чтобы изменять значение P_Name в таблице
Product каждый раз при добавлении новой строки O_Name в таблицу
Order, показан ниже. Код вставляется сразу же после выражения
%ForEachChildRel, поскольку сущность Order является родительской в
связи между Order и Product. Для того чтобы просмотреть расширенный
код после того, как шаблон, заданный по умолчанию, изменен, щелкните
по окну Expanded Code.

   create trigger %TriggerName on %TableName
    for %Actions(",")
    as
   /* ERwin Builtin %Datetime */
   /* %Actions(",") trigger on %TableName */
   /* default body for %TriggerName */
   begin
    declare @numrows int,
          @nullcnt int,
          @validcnt int,
          %PKDecl(,@ins)%decl(bComma,0)%ForEachAtt() {%if(%AttIsPk)
 {%=(bComma,1)} }%if (%==(%:bComma,1)) {,}
          @errno int,
          @errmsg varchar(255)

      select @numrows = @@rowcount
    %ForEachChildRel(){
      %RelTemplate
      %if (%==(%VerbPhrase,is requested on)){
      update %Parent from %Parent,inserted
      set P_Name = %Parent.P_Name
    +inserted.O_Name
    where
    %JoinFKPK(inserted,%Parent)
    }
    }

    %ForEachParentRel() {
      %RelTemplate
    }
      return
    error:
       raiserror @errno @errmsg
       rollback transaction
    end
    go

    ERwin автоматически присваивает каждой связи режим ссылочной
целостности, устанавливаемый по умолчанию, прежде чем добавить ее в



                                      203