Les attributs étendus sont créés pour contrôler la génération : chaque valeur d'attribut étendu peut être utilisée sous forme de variable qui peut être référencée dans les scripts définis dans la catégorie Script.
Certains SGBD incluent des attributs étendus prédéfinis. Par exemple, dans PostgreSQL, les domaines incluent les attributs étendus par défaut utilisés pour la création de types de données utilisateur.
Vous pouvez créer autant d'attributs étendus que nécessaire, pour chaque objet pris en charge par le SGBD.
Les noms des variables PowerAMC tiennent compte de la casse des caractères. Le nom d'une variable doit correspondre à la casse près au nom d'attribut étendu.
Dans DB2 UDB 7, l'attribut étendu WhereNotNull permet d'ajouter une clause qui spécifie que les noms d'index doivent être uniques à condition qu'ils ne soient pas null.
Dans la commande Create index, WhereNotNull est évalué comme suit :
create [%INDEXTYPE% ][%UNIQUE% [%WhereNotNull%?where not null ]]index [%QUALIFIER%]%INDEX% on [%TABLQUALIFIER%]%TABLE% (
%CIDXLIST%
)
[%OPTIONS%]
Si le nom d'index est unique, et si vous avez défini le type de l'attribut étendu WhereNotNull comme True, la clause "where not nul" sera insérée dans le script.
Dans l'élément SqlListQuery :
{{OWNER, TABLE, INDEX, INDEXTYPE, UNIQUE, INDEXKEY, CLUSTER, WhereNotNull} select tbcreator, tbname, name, case indextype when '2' then 'type 2' else 'type 1' end, case uniquerule when 'D' then '' else 'unique' end, case uniquerule when 'P' then 'primary' when 'U' then 'unique' else '' end, case clustering when 'Y' then 'cluster' else '' end, case uniquerule when 'N' then 'TRUE' else 'FALSE' end from sysibm.sysindexes where 1=1 [ and tbname=%.q:TABLE%] [ and tbcreator=%.q:OWNER%] [ and dbname=%.q:CATALOG%] order by 1 ,2 ,3