Utilisation des annotations sql:identity et sql:guid

S’applique à :SQL ServerAzure 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 IDENTITYcolonne de type -. 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 qui correspond à une IDENTITYcolonne de base de données de type -. La valeur spécifiée pour cette annotation définit la manière dont la IDENTITYcolonne de type est mise à jour (soit en utilisant la valeur fournie dans le updategramme 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).

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 à l’updategram d’utiliser la valeur fournie dans le updategram pour mettre à jour la IDENTITYcolonne -type. Un code de mise à jour (updategram) ne vérifie pas si la colonne est une valeur d'identité ou pas.

Si l’updategram spécifie une valeur pour la IDENTITYcolonne -type, la valeur 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 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.