Merge Entity

L'opération Merge Entity met à jour une entité existante en mettant à jour les propriétés de l'entité. Cette opération ne remplace pas l’entité existante, comme le fait l’opération mettre à jour l’entité .

Requête

La demande Merge Entity peut être construite comme indiqué ci-dessous. HTTPS est recommandé. Remplacez moncompte par le nom de votre compte de stockage, mytable par le nom de votre table, et myPartitionKey et myRowKey par le nom de la clé de partition et la clé de ligne identifiant l'entité à mettre à jour :

Méthode URI de demande Version HTTP
MERGE https://myaccount.table.core.windows.net/mytable(PartitionKey='myPartitionKey', RowKey='myRowKey') HTTP/1.1

L'adresse de l'entité à mettre à jour peut prendre plusieurs formes dans l'URI de la demande. Pour plus d’informations, consultez le protocole OData .

URI du service de stockage émulé

Lorsque vous élaborez une demande pour le service de stockage émulé, spécifiez le nom d'hôte de l'émulateur et le port de service de Table sous la forme 127.0.0.1:10002, suivi du nom de compte de stockage émulé :

Méthode URI de demande Version HTTP
MERGE http://127.0.0.1:10002/devstoreaccount1/mytable(PartitionKey='myPartitionKey', RowKey='myRowKey') HTTP/1.1

Le service Table dans l'émulateur de stockage et le service Table de Windows® Azure™ diffèrent sur plusieurs points. pour plus d’informations, consultez différences entre les Services Stockage Emulator et stockage Azure.

Paramètres URI

Les paramètres supplémentaires suivants peuvent être spécifiés dans l'URI de la demande.

Paramètre Description
timeout facultatif. Le paramètre timeout est exprimé en secondes. Pour plus d’informations, consultez définition de délais d’attente pour les opérations de service de table.

En-têtes de requête

Le tableau suivant décrit les en-têtes de demande obligatoires ou facultatifs.

En-tête de requête Description
Authorization Obligatoire. Spécifie le schéma d’autorisation, le nom de compte et la signature. pour plus d’informations, consultez autoriser les demandes à stockage Azure.
Date ou x-ms-date Obligatoire. Spécifie la date/heure en temps universel coordonné (UTC) pour la requête. pour plus d’informations, consultez autoriser les demandes à stockage Azure.
x-ms-version Facultatif. Spécifie la version de l'opération à utiliser pour cette demande. pour plus d’informations, consultez contrôle de version pour les Services stockage Azure.
Content-Type Obligatoire. Spécifie le type de contenu de la charge utile. Les valeurs possibles sont application/atom+xml et application/json.

Pour plus d’informations sur les types de contenu valides, consultez format de charge utile pour les opérations de service de table.
Content-Length Obligatoire. Longueur du corps de la demande.
If-Match Obligatoire. Le client peut indiquer l'ETag de l'entité de la demande afin de le comparer à l'ETag conservé par le service à des fins d'accès concurrentiel optimiste. L'opération de mise à jour sera exécutée uniquement si l'ETag envoyé par le client correspond à la valeur conservée par le serveur, ce qui indique que l'entité n'a pas été modifiée depuis sa récupération par le client.

Pour forcer une mise à jour sans condition, définissez If-Match au caractère générique (*).
x-ms-client-request-id Facultatif. Fournit une valeur opaque générée par le client avec une limite de 1 Kio de caractères qui est enregistrée dans les journaux d’analyse lorsque la journalisation de l’analyse de stockage est activée. L’utilisation de cet en-tête est fortement recommandée pour la mise en corrélation des activités côté client avec les requêtes reçues par le serveur. pour plus d’informations, consultez à propos de la journalisation des Storage Analytics et de la journalisation Azure : utilisation des journaux pour suivre les demandes de Stockage.

Corps de la demande

L'opération Merge Entity envoie l'entité à mettre à jour en tant qu'entité OData, qui est un flux JSON ou Atom. Pour plus d’informations, consultez insertion et mise à jour des entités.

Réponse

La réponse inclut un code d'état HTTP et un ensemble d'en-têtes de réponse.

Code d’état

Une opération réussie renvoie le code d'état 204 (Aucun contenu).

Pour plus d’informations sur les codes d’État, consultez codes d’État et d’erreur et codes d’erreur du service de table.

En-têtes de réponse

La réponse de l'opération inclut les en-têtes suivants. La réponse peut aussi inclure des en-têtes HTTP standard supplémentaires. Tous les en-têtes standard sont conformes à la spécification du protocole HTTP/1.1.

En-tête de réponse Description
ETag ETag pour l'entité.
x-ms-request-id Cet en-tête identifie de façon unique la demande qui a été effectuée et peut être utilisé pour résoudre les problèmes de la demande. Pour plus d’informations, consultez Troubleshooting API Operations.
x-ms-version Indique la version du service de Table utilisée pour exécuter la demande. Cet en-tête est renvoyé pour les demandes effectuées avec la version 2009-09-19 ou une version ultérieure.
Date Une valeur de date/heure UTC générée par le service qui indique le moment auquel la réponse a été initiée.
x-ms-client-request-id Cet en-tête peut être utilisé pour dépanner les demandes et les réponses correspondantes. La valeur de cet en-tête est égale à la valeur de l' x-ms-client-request-id en-tête si elle est présente dans la demande et que la valeur est supérieure à 1024 caractères ASCII visibles. Si l' x-ms-client-request-id en-tête n’est pas présent dans la demande, cet en-tête ne sera pas présent dans la réponse.

Corps de la réponse

Aucun.

Exemple de réponse

Response Status:  
HTTP/1.1 204 No Content  
  
Response Headers:  
Connection: Keep-Alive  
Content-Length: 0  
Cache-Control: no-cache  
Date: Mon, 25 Nov 2013 19:06:47 GMT  
ETag: W/"0x5B168C7B6E589D2"  
x-ms-version: 2013-08-15  
DataServiceVersion: 1.0;NetFx  
MaxDataServiceVersion: 2.0;NetFx  
Server: Windows-Azure-Table/1.0 Microsoft-HTTPAPI/2.0  

Autorisation

Cette opération peut être exécutée par le propriétaire du compte et par toute personne qui dispose d'une signature d'accès partagé qui a l'autorisation d'exécuter cette opération.

Remarques

Le service de table ne conserve pas les null valeurs des propriétés. La spécification d’une propriété avec une null valeur équivaut à omettre cette propriété dans la demande. Seules les propriétés avec des null valeurs non-sont mises à jour par l' Merge Entity opération.

Une propriété ne peut pas être supprimée avec une opération Merge Entity. Pour supprimer une propriété d’une entité, remplacez l’entité en appelant l’opération mettre à jour l’entité .

Lors de la fusion d'une entité, vous devez spécifier les propriétés système PartitionKey et RowKey dans le cadre de l'opération de fusion.

L'ETag d'une entité fournit l'accès concurrentiel optimiste par défaut pour les opérations de fusion. La valeur de l'ETag est opaque et ne doit pas être lue ou fiable. Avant qu'une opération de fusion ne se produise, le service Table vérifie que la valeur de l'ETag actuelle de l'entité est identique à la valeur de l'ETag incluse dans l'en-tête If-Match. Si les valeurs sont identiques, le service Table détermine que l'entité n'a pas été modifiée depuis qu'elle a été récupérée, et l'opération de fusion continue.

Si l'ETag de l'entité diffère de celui spécifié avec la demande de fusion, l'opération de fusion échoue avec un code d'état 412 (Échec de la précondition). Cette erreur indique que l'entité a été modifiée sur le serveur depuis qu'elle a été récupérée. Pour résoudre cette erreur, récupérez de nouveau l'entité et réémettez la demande.

Pour forcer une opération de fusion sans condition, définissez la valeur de l'en-tête If-Match au caractère générique (*) dans la demande. Le passage de cette valeur à l'opération remplacera l'accès concurrentiel optimiste par défaut et ignorera toute incompatibilité des valeurs de l'ETag.

Si l' If-Match en-tête est manquant dans la demande dans les versions 2011-08-18 et ultérieures, le service effectue une opération d' insertion ou de fusion d’entité (upsert). Dans les versions antérieures à 2011-08-18, le service retourne le code d’état 400 (requête incorrecte).

Toute application pouvant autoriser et envoyer une demande HTTP MERGE peut fusionner une entité. Pour plus d’informations sur la construction d’une requête à l’aide de la fusion HTTP, consultez procédure : ajouter, modifier et supprimer des entités.

Pour plus d’informations sur l’exécution d’opérations de fusion par lots, consultez exécution de transactions de groupe d’entités.

Voir aussi

Mettre à jour l’entité
autoriser les demandes à stockage Azure
Définition des en-têtes de version du service de données OData
Codes d’État et d’erreur
Codes d’erreur de service de Table