Partager via


Utilisation des annotations sql:identity et sql:guid

S’applique à : SQL Server Azure SQL Database

Vous pouvez spécifier les annotations sql :identity 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. Alors que le format updategram prend en charge les attributs updg :at-identity et updg :guid , le format DiffGram ne le fait pas. L’attribut updg :at-identity définit le comportement lors de la 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 cette fonctionnalité à 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. 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 sur n’importe quel nœud mappé à 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 (à l’aide de la valeur fournie dans le code de mise à jour 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).

L’annotation sql :identity peut être affectée à deux valeurs :

ignore
Indique au code de mise à jour d’ignorer toute valeur fournie dans le code de mise à jour de 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 spécifie une valeur pour la colonne de type IDENTITY, sql  :identity="useValue » doit être spécifié 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 de cette colonne.

L’annotation sql :guid peut être affectée à deux valeurs :

generate
Spécifie que le GUID généré par SQL Server doit ê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. Il s’agit de la valeur par défaut.