Este tema aún no ha recibido ninguna valoración - Valorar este tema

Update Entity

Actualizado: septiembre de 2011

The Update Entity operation updates an existing entity in a table. The Update Entity operation replaces the entire entity and can be used to remove properties.

The Update Entity request may be constructed as follows. Replace myaccount with the name of your storage account, mytable with the name of your table, and myPartitionKey and myRowKey1 with the name of the partition key and row key identifying the entity to be updated:

 

Method Request URI HTTP Version

PUT

http://myaccount.table.core.windows.net/mytable(PartitionKey='myPartitionKey', RowKey='myRowKey1')

HTTP/1.1

The address of the entity to be updated may take a number of forms on the request URI. The way to address an entity is specified by the ADO.NET Data Services Framework. For more information, see URI Format for Addressing Resources (ADO.NET Data Services Framework).

When making a request against the local storage service, specify the local hostname and Table service port as 127.0.0.1:10002, followed by the local storage account name:

 

Method Request URI HTTP Version

PUT

http://127.0.0.1:10002/devstoreaccount1/mytable(PartitionKey='myPartitionKey', RowKey='myRowKey1')

HTTP/1.1

The Table service in the storage emulator differs from the Windows® Azure™ Table service in several ways. For more information, see Información general del emulador de almacenamiento de Windows Azure and Diferencias entre el emulador de almacenamiento y los servicios de almacenamiento de Windows Azure.

The following table describes required and optional request headers.

 

Request header Description

Authorization

Required. Specifies the authentication scheme, account name, and signature. For more information, see Authentication Schemes.

Date or x-ms-date

Required. Specifies the Coordinated Universal Time (UTC) for the request. For more information, see Authentication Schemes.

x-ms-version

Optional. Specifies the version of the operation to use for this request. For more information, see Storage Services Versioning.

Content-Type

Required. The content type of the request body. Currently, this header should be set to application/atom+xml.

Content-Length

Required. The length of the request body.

If-Match

Required. Specifies the condition for which the update should be performed.

To force an unconditional update, set If-Match to the wildcard character (*).

The Update Entity operation sends the entity to be updated as an ADO.NET entity set, which is an Atom feed. For more information, see Inserting and Updating Entities. For details about the specification for the Atom feed, see the Atom Serialization Rules (ADO.NET Data Services Framework) in the ADO.NET Data Service Specifications.

This example shows a sample request URI, the associated request headers, and the request body.

Request URI:
http://myaccount.table.core.windows.net/mytable(PartitionKey='myPartitionKey',RowKey='myRowKey1')

Request Headers:
x-ms-version: 2011-08-18
Accept: application/atom+xml,application/xml
Accept-Charset: UTF-8
Content-Type: application/atom+xml
If-Match: *
x-ms-date: Wed, 14 Sep 2011 18:10:24 GMT
Authorization: SharedKeyLite myaccount:u0sWZKmjBD1B7LY/CwXWCnHdqK4B1P4z8hKy9SVW49o=
Content-Length: ###
DataServiceVersion: 1.0;NetFx
MaxDataServiceVersion: 2.0;NetFx

Request Body:
<?xml version="1.0" encoding="utf-8"?>
<entry xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="http://www.w3.org/2005/Atom">
  <title />
  <updated>2008-09-18T23:46:37.168836Z</updated>
  <author>
    <name />
  </author>
<id>http://myaccount.table.core.windows.net/mytable(PartitionKey='mypartitionkey',RowKey='myrowkey1')</id>
  <content type="application/xml">
    <m:properties>
      <d:Address>Santa Clara</d:Address>
      <d:Age m:type="Edm.Int32">23</d:Age>
      <d:AmountDue m:type="Edm.Double">200.23</d:AmountDue>
      <d:CustomerCode m:type="Edm.Guid">c9da6455-213d-42c9-9a79-3e9149a57833</d:CustomerCode>
      <d:CustomerSince m:type="Edm.DateTime">2008-07-10T00:00:00Z</d:CustomerSince>
      <d:IsActive m:type="Edm.Boolean">false</d:IsActive>
      <d:NumOfOrders m:type="Edm.Int64">255</d:NumOfOrders>
      <d:PartitionKey>mypartitionkey</d:PartitionKey>
      <d:RowKey>myrowkey1</d:RowKey>
      <d:Timestamp m:type="Edm.DateTime">2008-09-18T23:46:36.9557508Z</d:Timestamp>
    </m:properties>
  </content>
</entry>

The response includes an HTTP status code and a set of response headers.

A successful operation returns status code 204 (No Content).

For information about status codes, see Status and Error Codes and Table Service Error Codes.

The response includes the following headers. The response may also include additional standard HTTP headers. All standard headers conform to the HTTP/1.1 protocol specification.

 

Response header Description

ETag

The ETag for the entity.

x-ms-request-id

This header uniquely identifies the request that was made and can be used for troubleshooting the request. For more information, see Troubleshooting API Operations.

x-ms-version

Indicates the version of the Table service used to execute the request. This header is returned for requests made against version 2009-09-19 and later.

Date

A UTC date/time value generated by the service that indicates the time at which the response was initiated.

Response Status:
HTTP/1.1 204 No Content

Response Headers:
Proxy-Connection: Keep-Alive
Connection: Keep-Alive
x-ms-request-id: 2c085f8f-11a4-4e1d-bd49-82c6bd87649d
Content-Length: 0
Cache-Control: no-cache
Date: Wed, 14 Sep 2011 18:12:54 GMT
ETag: W/"datetime'2009-03-18T18%3A09%3A54.9308145Z'"
DataServiceVersion: 1.0;NetFx
MaxDataServiceVersion: 2.0;NetFx
Server: Windows-Azure-Table/1.0 Microsoft-HTTPAPI/2.0

Only the account owner may call this operation.

When updating an entity, you must specify the PartitionKey and RowKey system properties as part of the update operation.

An entity's ETag provides default optimistic concurrency for update operations. The ETag value is opaque and should not be read or relied upon. Before an update operation occurs, the Table service verifies that the entity's current ETag value is identical to the ETag value included with the update request. If the values are identical, the Table service determines that the entity has not been modified since it was retrieved, and the update operation proceeds.

If the entity's ETag differs from that specified with the update request, the update 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 again and reissue the request.

To force an unconditional update 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 ETag values.

If the If-Match header is missing from the request, the service returns status code 400 (Bad Request). A request malformed in other ways may also return 400; for more information, see Table Service Error Codes.

If the request specifies a property with a null value, that property is ignored, the update proceeds, and the existing entity is replaced.

noteNota
You can take advantage of this behavior to remove a property from an entity.

To explicitly type a property, specify the appropriate ADO.NET Data Services type by setting the m:type attribute within the property definition in the Atom feed. For more information about typing properties, see Inserting and Updating Entities.

Any application that can authenticate and send an HTTP PUT request can update an entity.

Note that you can also use the .NET Client Library for ADO.NET Data Services to update an entity.

For information about performing batch update operations, see Performing Entity Group Transactions.

¿Te ha resultado útil?
(Caracteres restantes: 1500)

Adiciones de comunidad

© 2013 Microsoft. Reservados todos los derechos.
facebook page visit twitter rss feed newsletter