Update Entity
La operación Update Entity
actualiza una entidad existente en una tabla. La Update Entity
operación reemplaza a toda la entidad y puede usar la operación para quitar propiedades.
Request
Puede construir la solicitud de la Update Entity
siguiente manera. Se recomienda HTTPS. Reemplace myaccount por el nombre de la cuenta de almacenamiento y mytable
por el nombre de la tabla. Reemplace myPartitionKey y myRowKey por el nombre de la clave de partición y la clave de fila que identifican la entidad que se va a actualizar.
Método | URI de solicitud | Versión de HTTP |
---|---|---|
PUT |
https://myaccount.table.core.windows.net/mytable(PartitionKey='myPartitionKey', RowKey='myRowKey') |
HTTP/1.1 |
La dirección de la entidad que se va a actualizar puede tomar una serie de formularios en el URI de solicitud. Consulte el protocolo OData para obtener más detalles.
URI del servicio de almacenamiento emulado
Cuando realice una solicitud en el servicio de almacenamiento emulado, especifique el nombre de host del emulador y el puerto de Azure Table Storage como 127.0.0.1:10002
, seguido del nombre de la cuenta de almacenamiento emulada.
Método | URI de solicitud | Versión de HTTP |
---|---|---|
PUT |
http://127.0.0.1:10002/devstoreaccount1/mytable(PartitionKey='myPartitionKey', RowKey='myRowKey') |
HTTP/1.1 |
Table Storage en el emulador de almacenamiento difiere de Azure Table Storage de varias maneras. Para más información, consulte Diferencias entre el emulador de almacenamiento y los servicios de Azure Storage.
Parámetros del identificador URI
Puede especificar los siguientes parámetros adicionales en el URI de solicitud.
Parámetro | Descripción |
---|---|
timeout |
Opcional. El parámetro timeout se expresa en segundos. Para más información, consulte Establecimiento de tiempos de espera para las operaciones de Table Storage. |
Encabezados de solicitud
En la tabla siguiente se describen los encabezados de solicitud requeridos y opcionales.
Encabezado de solicitud | Descripción |
---|---|
Authorization |
Necesario. Especifica el esquema de autorización, el nombre de cuenta y la firma. Para obtener más información, vea Autorización de solicitudes a Azure Storage. |
Date o x-ms-date |
Necesario. Especifica la hora universal coordinada (UTC) de la solicitud. Para obtener más información, vea Autorización de solicitudes a Azure Storage. |
x-ms-version |
Opcional. Especifica la versión de la operación que se utiliza para esta solicitud. Para obtener más información, vea Versiones de los servicios de Azure Storage. |
Content-Type |
Necesario. Especifica el tipo de contenido de la carga. Los valores posibles son application/atom+xml y application/json .Para obtener más información sobre los tipos de contenido válidos, consulte Formato de carga para las operaciones de Table Storage. |
Content-Length |
Necesario. Longitud del cuerpo de la solicitud. |
If-Match |
Necesario. El cliente puede especificar para ETag la entidad en la solicitud para comparar con el ETag mantenido por el servicio con el fin de la simultaneidad optimista. La operación de actualización solo se realiza si el ETag enviado por el cliente coincide con el valor mantenido por el servidor. Esta coincidencia indica que el cliente no ha modificado la entidad desde que la recuperó.Para forzar una actualización incondicional, establezca If-Match en el carácter comodín (*). |
x-ms-client-request-id |
Opcional. Proporciona un valor opaco generado por el cliente con un límite de caracteres de 1 kibibyte (KiB) que se registra en los registros cuando se configura el registro. Se recomienda encarecidamente usar este encabezado para correlacionar las actividades del lado cliente con las solicitudes que recibe el servidor. Para más información, consulte Supervisión de Azure Table Storage. |
Cuerpo de la solicitud
La Update Entity
operación envía la entidad que se va a actualizar como un OData
conjunto de entidades, que puede ser un JSON o una fuente Atom. Para obtener más información, consulte Inserción y actualización de entidades.
Nota
JSON es el formato de carga recomendado y es el único formato admitido para la versión 2015-12-11 y posteriores.
Solicitud de ejemplo
JSON (versión 2013-08-15 y posteriores)
En este ejemplo se muestra un URI de solicitud de ejemplo, los encabezados de solicitud asociados y el cuerpo de la solicitud para una fuente JSON.
Request Headers:
x-ms-version: 2015-12-11
Accept-Charset: UTF-8
Content-Type: application/json
If-Match: *
x-ms-date: Mon, 27 Jun 2016 18:10:24 GMT
Authorization: SharedKeyLite myaccount:u0sWZKmjBD1B7LY/CwXWCnHdqK4B1P4z8hKy9SVW49o=
Content-Length: ###
DataServiceVersion: 3.0;NetFx
MaxDataServiceVersion: 3.0;NetFx
{
"Address":"Santa Clara",
"Age":23,
"AmountDue":200.23,
"CustomerCode@odata.type":"Edm.Guid",
"CustomerCode":"c9da6455-213d-42c9-9a79-3e9149a57833",
"CustomerSince@odata.type":"Edm.DateTime",
"CustomerSince":"2008-07-10T00:00:00",
"IsActive":false,
"NumberOfOrders@odata.type":"Edm.Int64",
"NumberOfOrders":"255",
"PartitionKey":"mypartitionkey",
"RowKey":"myrowkey"
}
Fuente atom (versiones anteriores a 2015-12-11)
En este ejemplo se muestra un URI de solicitud de ejemplo, los encabezados de solicitud asociados y el cuerpo de la solicitud para una fuente Atom.
Request URI:
https://myaccount.table.core.windows.net/mytable(PartitionKey='myPartitionKey',RowKey='myRowKey')
Request Headers:
x-ms-version: 2013-08-15
Accept: application/atom+xml,application/xml
Accept-Charset: UTF-8
Content-Type: application/atom+xml
If-Match: *
x-ms-date: Wed, 20 Nov 2013 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>https://myaccount.table.core.windows.net/mytable(PartitionKey='mypartitionkey',RowKey='myrowkey')</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>myrowkey</d:RowKey>
</m:properties>
</content>
</entry>
Response
La respuesta incluye un código de estado HTTP y un conjunto de encabezados de respuesta.
status code
Una operación correcta devuelve el código de estado 204 (Sin contenido). Para obtener información sobre los códigos de estado, consulte Códigos de error y estado yCódigos de error de Table Storage.
Encabezados de respuesta
La respuesta incluye los encabezados siguientes. La respuesta también puede incluir encabezados HTTP adicionales estándar. Todos los encabezados estándar se ajustan a la especificación del protocolo HTTP/1.1.
Encabezado de respuesta | Descripción |
---|---|
ETag |
ETag para la entidad . |
x-ms-request-id |
Este encabezado identifica de forma única la solicitud que se realizó y se puede usar para solucionar problemas de la solicitud. Para más información, consulte Solución de problemas de operaciones de API. |
x-ms-version |
Indica la versión de Table Storage usada para ejecutar la solicitud. Este encabezado se devuelve para las solicitudes realizadas en la versión 2009-09-19 y versiones posteriores. |
Date |
Valor de fecha y hora UTC que indica la hora en la que se inició la respuesta. El servicio genera este valor. |
x-ms-client-request-id |
Puede usar este encabezado para solucionar problemas de solicitudes y respuestas correspondientes. El valor de este encabezado es igual al valor del x-ms-client-request-id encabezado, si está presente en la solicitud. El valor tiene como máximo 1024 caracteres ASCII visibles. Si el x-ms-client-request-id encabezado no está presente en la solicitud, este encabezado no estará presente en la respuesta. |
Response body
Ninguno.
Respuesta de muestra
Response Status:
HTTP/1.1 204 No Content
Response Headers:
Connection: Keep-Alive
x-ms-request-id: 2c085f8f-11a4-4e1d-bd49-82c6bd87649d
Content-Length: 0
Cache-Control: no-cache
Date: Mon, 27 Jun 2016 18:12:54 GMT
ETag: W/"0x5B168C7B6E589D2"
DataServiceVersion: 3.0;NetFx
MaxDataServiceVersion: 3.0;NetFx
Server: Windows-Azure-Table/1.0 Microsoft-HTTPAPI/2.0
Authorization
El propietario de la cuenta puede realizar esta operación. Además, cualquier persona con una firma de acceso compartido que tenga permiso para realizar esta operación puede hacerlo.
Comentarios
Al actualizar una entidad, debe especificar las PartitionKey
propiedades del sistema y RowKey
como parte de la operación de actualización.
Una entidad ETag
proporciona simultaneidad optimista predeterminada para las operaciones de actualización. El ETag
valor es opaco y no debe leerse ni confiarse en ella. Antes de que se produzca una operación de actualización, Table Storage comprueba que el valor actual ETag
de la entidad es idéntico al ETag
valor incluido con la solicitud de actualización en el If-Match
encabezado. Si los valores son idénticos, Table Storage determina que la entidad no se ha modificado desde que se recuperó y continúa la operación de actualización.
Si la entidad ETag
difiere de la especificada con la solicitud de actualización, se produce un error en la operación de actualización con el código de estado 412 (error de condición previa). Este error indica que la entidad se ha modificado en el servidor desde que se recuperó. Para resolver este error, recupere la entidad de nuevo y vuelva a emitir la solicitud.
Para forzar una operación de actualización incondicional, establezca el valor del encabezado If-Match
en el carácter comodín (*) en la solicitud. Al pasar este valor a la operación, se invalida la simultaneidad optimista predeterminada y se omite cualquier error de coincidencia en ETag
los valores.
Si falta el If-Match
encabezado de la solicitud en la versión 2011-08-18 o posterior, el servicio realiza una operación insertar o reemplazar entidad (upsert). En versiones anteriores a 2011-08-18, el servicio devuelve el código de estado 400 (solicitud incorrecta).
Table Storage no conserva null
los valores de las propiedades. Especificar una propiedad con un null
valor equivale a omitir esa propiedad en la solicitud.
Nota
Puede aprovechar cualquier comportamiento para quitar una propiedad de una entidad.
Para escribir explícitamente una propiedad, especifique el tipo de datos adecuado OData
estableciendo el m:type
atributo dentro de la definición de propiedad en la fuente Atom. Para obtener más información sobre cómo escribir propiedades, vea Insertar y actualizar entidades.
Cualquier aplicación que pueda autorizar y enviar una solicitud HTTP PUT
puede actualizar una entidad.
Para obtener información sobre cómo realizar operaciones de actualización por lotes, consulte Realización de transacciones de grupo de entidades.
Consulte también
Merge Entity
Autorización de solicitudes a Azure Storage
Establecimiento de los encabezados de versión del servicio de datos de OData
Estado y códigos de error
Códigos de error de Table Storage