Partager via


Utilisation des annotations sql:identity et sql:guid

Vous pouvez spécifier les sql:identity annotations et sql:guid dans un schéma XSD sur n’importe quel nœud mappé à 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 vous permet d’obtenir une valeur GUID à partir de SQL Server et de l’utiliser dans le code de mise à jour. Pour plus d’informations et des exemples de travail, consultez Insertion de données à l’aide de codes de mise à jour 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 la façon dont la colonne de type IDENTITY est mise à jour (soit en utilisant la valeur fournie dans le code de mise à jour pour modifier la colonne, soit 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
Indique au code de mise à jour d’ignorer toute valeur fournie dans le code de mise à jour pour cette colonne et de s’appuyer 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 peut avoir SQL Server générer une valeur GUID, puis utiliser cette valeur dans le code de mise à jour. 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 :

générer
Spécifie que le GUID généré par SQL Server être utilisé pour cette colonne dans 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. Valeur par défaut.