Utilisation d'attributs étendus lors de la génération

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.

Remarque :

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.

Exemple

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


Created October 8, 2009. Send feedback on this help topic to Sybase Technical Publications: pubs@sybase.com