Spécification de l'attribut sql:inverse sur sql:relationship (SQLXML 4.0)
L'attribut sql:inverse est utile uniquement lorsque le schéma XSD est utilisé pour le chargement en masse ou par un code de mise à jour (updategram). L'attribut sql:inverse peut être spécifié sur l'élément <sql:relationship>. Dans les codes de mise à jour, la logique de code de mise à jour interprète le schéma pour déterminer les tables et colonnes mises à jour par l'opération de code de mise à jour. Les relations parent-enfant spécifiées dans le schéma déterminent l'ordre dans lequel les enregistrements sont modifiés (insérés ou supprimés).
Si vous avez un schéma XSD dans lequel la relation parent-enfant est spécifiée dans l'ordre inverse de la relation clé primaire/clé étrangère entre les colonnes de base de données correspondantes, l'opération d'insertion ou de suppression du code de mise à jour échouera à cause de la violation de clé primaire/clé étrangère. Dans ces cas-là, l'attribut sql:inverse est spécifié (sql:inverse="true") dans l'élément <sql:relationship> et la logique de code de mise à jour inverse son interprétation de la relation parent-enfant spécifiée dans le schéma.
L'attribut sql:inverse prend une valeur booléenne (0=faux, 1=vrai). Les valeurs acceptables sont 0, 1, true et false.
Pour un exemple fonctionnel à l'aide de l'annotation sql:inverse, consultez Spécification d'un schéma de mappage annoté dans un code de mise à jour (updategram).