Merge Entity operation updates an existing entity by updating the entity's properties. This operation does not replace the existing entity, as the Update Entity operation does.
You can construct the
Merge Entity request as follows. HTTPS is recommended. Replace myaccount with the name of your storage account, and mytable with the name of your table. Replace myPartitionKey and myRowKey with the name of the partition key and row key identifying the entity to be updated.
|Method||Request URI||HTTP version|
The address of the entity to be updated can take a number of forms on the request URI. See the OData Protocol for additional details.
Emulated storage service URI
When you make a request against the emulated storage service, specify the emulator hostname and Azure Table Storage port as
127.0.0.1:10002, followed by the emulated storage account name.
|Method||Request URI||HTTP version|
Table Storage in the storage emulator differs from the Azure Table Storage in several ways. For more information, see Differences between the storage emulator and Azure Storage services.
You can specify the following additional parameters on the request URI.
The following table describes required and optional request headers.
||Required. Specifies the authorization scheme, account name, and signature. For more information, see Authorize requests to Azure Storage.|
||Required. Specifies the Coordinated Universal Time (UTC) for the request. For more information, see Authorize requests to Azure Storage.|
||Optional. Specifies the version of the operation to use for this request. For more information, see Versioning for the Azure Storage services.|
||Required. Specifies the content type of the payload. Possible values are
For more information about valid content types, see Payload format for Table Storage operations.
||Required. The length of the request body.|
||Required. The client can specify the
To force an unconditional update, set
||Optional. Provides a client-generated, opaque value with a 1-kibibyte (KiB) character limit that's recorded in the logs when logging is configured. We highly recommend that you use this header to correlate client-side activities with requests that the server receives. For more information, see Monitor Azure Table Storage.|
Merge Entity operation sends the entity to be updated as an
OData entity, which can be either a JSON or an Atom feed. For more information, see Inserting and updating entities.
The response includes an HTTP status code and a set of response headers.
The response for this operation includes the following headers. The response can also include additional, standard HTTP headers. All standard headers conform to the HTTP/1.1 protocol specification.
||This header uniquely identifies the request that was made, and can be used for troubleshooting the request. For more information, see Troubleshooting API operations.|
||Indicates the version of Table Storage used to run the request. This header is returned for requests made against version 2009-09-19 and later.|
||A UTC date/time value that indicates the time at which the response was initiated. The service generates this value.|
||You can use this header to troubleshoot requests and corresponding responses. The value of this header is equal to the value of the
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
The account owner can perform this operation. Additionally, anyone with a shared access signature that has permission to perform this operation can do so.
Table Storage doesn't make
null values for properties persistent. Specifying a property with a
null value is equivalent to omitting that property in the request. Only properties with non-
null values are updated by the
Merge Entity operation.
You can't remove a property with a
Merge Entity operation. If you need to do this, replace the entity by calling the Update Entity operation.
When you merge an entity, you must specify the
RowKey system properties as part of the merge operation.
ETag provides default, optimistic concurrency for merge operations. The
ETag value is opaque, and shouldn't be read or relied upon. Before a merge operation occurs, Table Storage verifies that the entity's current
ETag value is identical to the
ETag value included with the request in the
If-Match header. If the values are identical, Table Storage determines that the entity hasn't been modified since it was retrieved, and the merge operation proceeds.
If the entity's
ETag differs from that specified with the merge request, the merge operation fails with status code 412 (Precondition Failed). This error indicates that the entity has been changed on the server since it was retrieved. To resolve this error, retrieve the entity and reissue the request.
To force an unconditional merge operation, set the value of the
If-Match header to the wildcard character (*) on the request. Passing this value to the operation will override the default, optimistic concurrency, and ignore any mismatch in
If-Match header is missing from the request in version 2011-08-18 and later, then the service performs an Insert Or Merge Entity (upsert) operation. In versions prior to 2011-08-18, the service returns status code 400 (Bad Request).
Any application that can authorize and send an
HTTP MERGE request can merge an entity. For more information about constructing a query by using
HTTP MERGE, see Add, modify, and delete entities.
For information about performing batch merge operations, see Performing entity group transactions.