Partager via


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 de mise à jour prend en charge les attributs updg:at-identity et updg:guid , ce n’est pas le cas du format DiffGram. 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é 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. 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 (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 attribué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 spécifie une valeur pour la colonne identity-type, 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 pour cette colonne.

Deux valeurs peuvent être attribué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.