Partager via


Utilisation des annotations sql:identity et sql:guid

Vous pouvez spécifier les annotations sql:identity et sql:guid dans un schéma XSD pour n'importe quel nœud mappé sur une colonne de base de données dans Microsoft SQL Server. Le format de code de mise à jour (updategram) prend en charge les attributs updg:at-identity et updg:guid, contrairement au format de DiffGram. L'attribut updg:at-identity définit le comportement de mise à jour d'une colonne de type IDENTITY. L'attribut updg:guid permet d'obtenir une valeur GUID à partir de SQL Server et de l'utiliser dans le code de mise à jour (updategram). Pour obtenir des informations et des exemples fonctionnels, consultez Insertion de données à l'aide de codes de mise à jour (updategrams) XML (SQLXML 4.0).

Les annotations sql:identity et sql:guid étendent ces fonctionnalités aux DiffGrams.

Lorsque vous exécutez un DiffGram, il est d'abord converti en un code de mise à jour (updategram), puis le code de mise à jour (updategram) est exécuté. En spécifiant les annotations sql:identity et sql:guid dans le schéma XSD, vous définissez en fait le comportement d'un code de mise à jour (updategram). Par conséquent, toutes les annotations sont décrites dans le contexte d'un code de mise à jour (updategram). Les annotations peuvent être utilisées à la fois pour les DiffGrams et les codes de mise à jour (updategram) ; toutefois, les codes de mise à jour (updategram) offrent déjà un moyen plus puissant pour gérer l'identité et les valeurs GUID.

Les annotations sql:identity et sql:guid peuvent être définies sur un élément de contenu complexe.

Annotation sql:identity

Vous pouvez spécifier l'annotation sql:identity dans le schéma XSD de n'importe quel nœud mappé sur une colonne de base de données de type IDENTITY. La valeur spécifiée pour cette annotation définit comment la colonne de type IDENTITY est mise à jour (en utilisant la valeur fournie dans le code de mise à jour (updategram) pour modifier la colonne ou en ignorant la valeur, auquel cas une valeur générée par SQL Server est utilisée pour cette colonne).

Deux valeurs peuvent être assignées à l'annotation sql:identity :

  • ignore
    Ordonne au code de mise à jour (updategram) d'ignorer toute valeur fournie dans le code de mise à jour (updategram) pour cette colonne et de compter sur SQL Server pour générer la valeur d'identité.

  • useValue
    Ordonne au code de mise à jour (updategram) d'utiliser la valeur fournie dans le code de mise à jour (updategram) pour mettre à jour la colonne de type IDENTITY. Un code de mise à jour (updategram) ne vérifie pas si la colonne est une valeur d'identité ou pas.

Si le code de mise à jour (updategram) spécifie une valeur pour la colonne de type IDENTITY, l'annotation sql:identity="useValue" doit être spécifiée dans le schéma.

Annotation sql:guid

Un code de mise à jour (updategram) peut faire en sorte que SQL Server génère une valeur GUID, puis utiliser cette valeur dans le code de mise à jour (updategram). Dans le contexte de DiffGrams, vous pouvez utiliser l'annotation sql:guid pour spécifier s'il faut utiliser une valeur GUID générée par SQL Server ou utiliser la valeur fournie dans le code de mise à jour (updategram) pour cette colonne.

Deux valeurs peuvent être assignées à l'annotation sql:guid :

  • generate
    Spécifie que le GUID généré par SQL Server doit être utilisé pour cette colonne de l'opération de mise à jour.

  • useValue
    Spécifie que la valeur spécifiée dans le code de mise à jour (updategram) doit être utilisée pour la colonne. Il s'agit de la valeur par défaut.