Данная таблица содержит имена всех макрокоманд 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. |