Список макрокоманд
Данная таблица содержит имена всех макрокоманд ERwin, их синтаксис, описание расширенного кода, генерируемого макрокомандой и список СУБД, поддерживающих ее использование. Информация, которую Вы вводите вручную, заключена в угловые скобки (например, <macro code 1>).
Вы можете использовать эти макрокоманды в шаблонах, которые Вы создаете для триггеров, хранимых процедур и скриптов (если эти возможности поддерживаются Вашей СУБД). Если в графе 'СУБД' стоит слово 'Все', это означает, что любая СУБД поддерживает использование макрокоманды хотя бы в одном типе шаблонов ERwin. Обратите внимание, что некоторые макрокоманды, например %Fire, позволяющие Вам задавать, когда будет выполняться триггер, зависят от возможностей, которые не поддерживаются всеми СУБД. Более подробно о том, поддерживает ли Ваша СУБД RI-триггеры, хранимые процедуры и (или) скрипты, см. документацию по этой CУБД.
Макрокоманда | Описание | СУБД |
%!=(<macro code1>, <macro code 2>) | Оператор сравнения, !=, сравнивает расширения macro code1 и macro code 2 | Все |
%% | Используйте два символа '%', если расширенный текст триггера должен содержать один символ '%'. | Все |
%*(<macro code1>, <macro code 2>) | Перемножает расширения macro code1 и macro code 2 | Все |
%+(<macro code1>, <macro code 2>) | Складывает расширения macro code1 и macro code 2 | Все |
%-(<macro code1>, <macro code 2>) | Вычитает одно из другого расширения macro code1 и macro code 2 | Все |
%/(<macro code1>, <macro code 2>) | Делит одно на другое расширения macro code1 и macro code 2 | Все |
%:<variable> | Возвращает значение <variable>. | Все |
%<(<macro code1>, <macro code 2>) | Оператор сравнения, <, сравнивает расширения macro code1 и macro code 2 | Все |
%<=(<macro code1>, <macro code 2>) | Оператор сравнения, <=, сравнивает расширения macro code1 и macro code 2 | Все |
%=(<variable>,<macro code>) | Присваивает расширение <macro code> переменной <variable>. | Все |
%==(<macro code1>, <macro code 2>) | Оператор сравнения, ==, сравнивает расширения macro code1 и macro code 2 | Все |
%>(<macro code1>, <macro code 2>) | Оператор сравнения, >, сравнивает расширения macro code1 и macro code 2 | Все |
%>=(<macro code1>, <macro code 2>) | Оператор сравнения, >=, сравнивает расширения macro code1 и macro code 2 | Все |
РИС. 16.21. |
Макрокоманда | Описание | СУБД |
%Action | Действие, до или после которого выстреливает триггер (напр., INSERT, UPDATE, DELETE). | Все |
%Actions(<separator>) | Разделенный список действий, до или после которых выстреливает триггер (напр., INSERT or UPDATE). | Все |
%And(<macro code1>,<macro code2>) | Выполняет операцию 'логическое И' над булевскими предикатами, заданными в <macro code1> и <macro code2>. | Все |
%AttDatatype | Создает строку, представляющую тип данных текущего атрибута. | Все |
%AttFieldname | Создает строку, представляющую физическое имя поля текущего атрибута. | Все |
%AttFieldWidth | Генерирует целое число, представляющее длину типа данных текущего атрибута (напр., varchar(50) -->50). | Все |
%AttlsFK | Булевский предикат, который может быть использован как условие в выражении %If. Он определяет, входит ли текущий атрибут во внешний ключ. | Все |
%AttlsPK | Булевский предикат, который может быть использован как условие в выражении %If. Он определяет, входит ли текущий атрибут в первичный ключ | Все |
%AttName | Создает строку, представляющую логическое имя текущего атрибута. | Все |
%AttNullOption | Создает строку, представляющую режим нулевых значений для текущего атрибута. | Все |
%AttPhysDatatype | Генерирует физический тип данных текущего атрибута независимо от того, является ли этот тип данных типом данных, определенным пользователем. | Все |
%Atts(<separator>,<function>,<prefix>) | Выдает список всех атрибутов сущности триггера, выполняя заданную функцию для каждого элемента. | Все |
%AttValidation | Возвращает имя правила валидации, связанного с данным атрибутом; может быть использован в ForEachAtt или ForEachFKAtt. | Все |
%Cardinality | Кардинальность связи. | Все |
%Child | Физическое имя таблицы дочерней сущности связи. | Все |
%ChildAtts(<separator>, <function>,<prefix>) | Выдает список всех атрибутов дочерней сущности связи, выполняя заданную функцию для каждого элемента. | Все |
%ChildFK(<separator>, <function>) | Выдает список внешних ключей дочерней сущности связи, выполняя заданную функцию для каждого элемента. (update(customer_number) или update(customer_name) и т.д.). | Все |
%ChildFKDecl(<old prefix>,<new prefix>,<separator>) | Выдает список внешних ключей дочерней сущности связи с их типами данных (См. %ParamDecl). | Все |
%ChildNK(<separator>, <function>,<prefix>) | Генерирует разделенный список функций для каждого неключевого элемента дочерней сущности (напр., update(customer_number) or update(customer_name) or ....). | Все |
%ChildNKDecl(<old prefix>,<new prefix>,<separator>) | Выдает список неключевыых атрибутов дочерней сущности связи с их типами данных (См. %ParamDecl). | Все |
РИС. 16.21. | ||
Макрокоманда | Описание | СУБД |
%ChildParamDecl(<old prefix>,<new prefix>,<separator>) | Выдает список атрибутов дочерней сущности связи с их типами данных (См. %ParamDecl). | Все |
%ChildPK<separator>, <function>,<prefix>) | Генерирует разделенный список функций для каждого элемента первичного ключа дочерней сущности (напр., update(customer_number) or update(customer_name) or ....). | Все |
%ChildPKDecl(<old prefix>,<new prefix>,<separator>) | Выдает список атрибутов первичного ключа дочерней сущности связи с их типами данных (См. %ParamDecl). | Все |
%Concat(<value1>,<value2>) | Производит конкатенацию <value1> и <value2>. Возвращает результат. | Все |
%CustomTriggerDefaultFooter | Часть триггера, определенного пользователем - default footer, которая содержится в diagram-wide сегменте шаблона CUSTOM TRIGGER FOOTER. | Все |
%CustomTriggerDefaultHeader | Часть триггера, определенного пользователем - default header, которая содержится в diagram-wide сегменте шаблона CUSTOM TRIGGER HEADER. | Все |
%Datetime | Создает строку, представляющую текущую дату и время. | Все |
%DBMS | Возвращает имя СУБД. | Все |
%DBMSDelim | Возвращает разделитель операторов СУБД. | Все |
%Decl(<arg>,<initial value>) | Объявляет <arg> как переменную и, если это задано, присваивает ей значение <initial value>. | Все |
%Fire | Задает, когда выстреливает триггер (напр., BEFORE, AFTER). | INFORMIX Ingres ORACLE7 Rdb |
%ForEachAtt(<table>, <separator>) {\015\n\<macro code>\015\n} | Расширяет макрокод для каждого из атрибутов заданной таблицы. | Все |
%ForEachChildRel (<separator>) {\015\n\<relationship code>\015\n} | Расширяет <relationship code> для каждой связи, в которой сущность триггера является дочерней. | Все |
%ForEachFKAtt(<separator>) {\015\n\<macro code>\015\n} | Расширяет макрокод для каждого из атрибутов внешнего ключа, мигрировавших через текущую связь. | Все |
%ForEachParentRel (<separator>) {\015\n\<relationship code>\015\n} | Расширяет <relationship code> для каждой связи, в которой сущность триггера является родительской. | Все |
%If (<predicate>){<macro code>} %Else {<macro code>} | В зависимости от условия, расширяет макрокод if или else. Часть else не является обязательной. | Все |
%include('path name') | Позволяет Вам включать макрокоды триггера в файлы. | Все |
JoinFKPK([<child table>,<parent table>,<comparison op>,<separator>) | Часть условия поиска оператора Where, присоединяющая внешний ключ дочерней сущности к первичному ключу родительской сущности связи. | Все |
JoinPKPK(<table>, <correlation>,<comparison op>,<separator>) | Часть условия поиска оператора Where, соединяющая первичные ключи двух корреляций или таблицы и корреляции. | Все |
%Len(<macro code>) | Возвращает длину строки <macro code>. | Все |
%Lower(<macro code>) | Преобразует расширение <macro code> в нижний регистр. | Все |
РИС. 16.21. |
Макрокоманда | Описание | СУБД |
%Max(<value1>,<value2>) | Возвращает максимальное значение - <value1> или <value2>. | Все |
%Min(<value1>,<value2>) | Возвращает минимальное значение - <value1> или <value2>. | Все |
%NK(<separator>,<function>,<prefix>) | Выдает список всех неключевых атрибутов сущности триггера, выполняя заданную функцию для каждого элемента. | Все |
%NKDecl(<old prefix>,<new prefix>,<separator>) | Выдает список неключевых атрибутов сущности триггера с их типами данных (См. %ParamDecl). | Все |
%Not(<macro code>) | Выполняет операцию 'логическое НЕ' над булевским предикатом, определенным в <macro code>. | Все |
%NotnullFK(<child table>,<not null expression>, <prefix>,<separator>) | Часть условия поиска оператора Where, сравнивающая внешний ключ дочерней сущности связи с null. Эта макрокоманда расширяется тогда и только тогда, когда связь является неидентифицирующей, nulls allowed. | Все |
%Or(<macro code1>,<macro code2>) | Выполняет операцию 'логическое ИЛИ' над булевскими предикатами, определенными в <macro code1> и <macro code2>. | Все |
%ParamDecl(<old prefix>,<new prefix>,<separator>) | Выдает список всех атрибутов сущности триггера с их типами данных. Имя каждого атрибута имеет формат: <old/new prefix>_<att_name>. Если заданы и старый и новый префикс, то длина списка удваивается. В первой половине списка содержится <old prefix>_<att_name>, во второй - < new prefix>_<att_name>. | Все |
%ParamPass(<old prefix>,<new prefix>,<param/value separator>,<param separator>) | Присваивает значения параметрам процедур, заданным в <old prefix> и(или) в <new prefix> для всех атрибутов сущности триггера. | Ingres |
%Parent | Физическое имя таблицы родительской сущности связи. | Все |
%ParentAtt (<attribute macro>) | Расширяет любую макрокоманду атрибута (напр., %AttFieldName, %AttDatatype) для атрибута родительского первичного ключа, который, мигрировав, сформировал текущий атрибут. | Все |
%ParentAtts(<separator>, <function>,<prefix>) | Выдает список всех атрибутов родительской сущности связи, выполняя заданную функцию для каждого элемента. | Все |
%ParentNK(<separator>, <function>,<prefix>) | Выдает список всех неключевых атрибутов родительской сущности связи, выполняя заданную функцию для каждого элемента. | Все |
%ParentNKDecl(<old prefix>,<new prefix>,<separator>) | Выдает список неключевых атрибутов родительской сущности связи с их типами данных (См. %ParamDecl). | Все |
%ParentParamDecl(<old prefix>,<new prefix>,<separator>) | Выдает список неключевых атрибутов родительской сущности связи с их типами данных (См. %ParamDecl). | Все |
%ParentPK(<separator>, <function>) | Выдает список всех атрибутов первичного ключа родительской сущности связи, выполняя заданную функцию для каждого элемента. | Все |
%ParentPKDecl(<old prefix>,<new prefix>,<separator>) | Выдает список атрибутов первичного ключа родительской сущности связи с их типами данных (См. %ParamDecl). | Все |
%PhysRelName | Физическое имя связи. | Все |
%PK(<separator>, <function>) | Выдает список первичных ключей сущности триггера, выполняя заданную функцию для каждого элемента. | Все |
РИС. 16.21. |
Макрокоманда | Описание | СУБД |
%PKDecl(<old prefix>,<new prefix>,<separator>) | Выдает список атрибутов первичного ключа сущности триггера с их типами данных (См. %ParamDecl). | Все |
%RefClause | Оператор ссылок; расширяется: REFERENCES OLD as <old name> new as <new name>. | INFORMIX Ingres ORACLE7 Rdb |
%RelTemplate | Расширяет связь 'Template Code", присоединенную к текущей связи. Если нет присоединенного кода, то расширяется соответствующий diagram-wide шаблон ссылочной целостности. | Все |
%Scope | Задает, каким образом будет выполняться триггер (напр., один раз для всей таблицы, для каждой строки и т.д.). | ORACLE7 |
%SetFK(<child table>,<value>) | Выдает список внешнего ключа дочерней сущности связи, в котором каждому элементу присвоено заданное значение. | Все |
%SetPK(<table>,<value>) | Выдает список первичного ключа заданной таблицы, в котором каждому элементу присвоено заданное значение | Все |
%Substitute(<value>,<pattern>,<substitute>) | Заменяет строку <pattern> в строке <value> на строку <substitute>. | Все |
%Substr(<macro code>,<initial pos>,<length>) | Создает подстроку для расширения заданного <macro code>. | Все |
%Table Name | Физическое имя таблицы сущности триггера. | Все |
%Template Name | Возвращает имя шаблона триггера, хранимой процедуры или скрипта; может быть использовано в редакторе Entity Trigger. | Все |
%Trigger Name | Физическое имя триггера. | Все |
%TriggERelRI(<action>, <type>,<integrity>) | Булевский предикат, принимающий значение 'истинно', если заданный триггер и связь относятся к заданному действию (Update/Delete/Insert), типу (Child/Parent) и целостности (Cascade/Restrict/Set Null/Set Default). | Все |
%UpdateChildFK() | Выдает список внешнего ключа дочерней сущности связи, выполняя функцию update для каждого элемента. | ORACLE7, SQL Server SYBASE |
%UpdateParentPK() | Выдает список первичного ключа родительской сущности связи, выполняя функцию update для каждого элемента. | ORACLE7, SQL Server SYBASE |
%UpdatePK() | Выдает список первичного ключа сущности триггера, выполняя функцию update для каждого элемента. | ORACLE7, SQL Server SYBASE |
%Upper(<macro code>) | Преобразует расширение <macro code> в нижний регистр. | Все |
%ValidationHasValidValues (<arg>) | Возвращает 'TRUE', если заданное правило валидации <arg> имеет допустимые значения, иначе - 'FALSE'. | Все |
%ValidationRule(<validation name>) или %ValidationRule | Возвращает правило валидации для сервера; может быть использовано в любом месте с аргументом <validation name> или в рамках действия правила, без аргументов. | Все |
%ValidValue | Возвращает значение допустимого значения; используется в рамках действия допустимого значения | Все |
%ValidValueDef | Возвращает определение допустимого значения; используется в рамках действия допустимого значения | Все |
%VerbPhrase | Возвращает глагольную фразу связи. | Все |
РИС. 16.21. |