Update Entity
A operação Update Entity
atualiza uma entidade existente em uma tabela. A Update Entity
operação substitui toda a entidade e você pode usar a operação para remover propriedades.
Solicitação
Você pode construir a solicitação da Update Entity
seguinte maneira. HTTPS é recomendado. Substitua myaccount pelo nome da sua conta de armazenamento e mytable
pelo nome da tabela. Substitua myPartitionKey e myRowKey pelo nome da chave de partição e da chave de linha que identificam a entidade a ser atualizada.
Método | URI da solicitação | Versão HTTP |
---|---|---|
PUT |
https://myaccount.table.core.windows.net/mytable(PartitionKey='myPartitionKey', RowKey='myRowKey') |
HTTP/1.1 |
O endereço da entidade a ser atualizada pode usar vários formulários no URI da solicitação. Consulte o Protocolo OData para obter detalhes adicionais.
URI do serviço de armazenamento emulado
Ao fazer uma solicitação no serviço de armazenamento emulado, especifique o nome do host do emulador e a porta do Armazenamento de Tabelas do Azure como 127.0.0.1:10002
, seguido pelo nome da conta de armazenamento emulado.
Método | URI da solicitação | Versão HTTP |
---|---|---|
PUT |
http://127.0.0.1:10002/devstoreaccount1/mytable(PartitionKey='myPartitionKey', RowKey='myRowKey') |
HTTP/1.1 |
O Armazenamento de Tabelas no emulador de armazenamento difere do Armazenamento de Tabelas do Azure de várias maneiras. Para obter mais informações, consulte Diferenças entre o emulador de armazenamento e os serviços de Armazenamento do Azure.
Parâmetros do URI
Você pode especificar os seguintes parâmetros adicionais no URI de solicitação.
Parâmetro | Descrição |
---|---|
timeout |
Opcional. O parâmetro timeout é expresso em segundos. Para obter mais informações, consulte Configurando tempos limite para operações de Armazenamento de Tabelas. |
Cabeçalhos da solicitação
A tabela a seguir descreve os cabeçalhos de solicitação obrigatórios e opcionais.
Cabeçalho da solicitação | Descrição |
---|---|
Authorization |
Obrigatórios. Especifica o esquema de autorização, o nome da conta e a assinatura. Para saber mais, confira Autorizar solicitações para o Armazenamento do Azure. |
Date ou x-ms-date |
Obrigatórios. Especifica o UTC (Tempo Universal Coordenado) para a solicitação. Para saber mais, confira Autorizar solicitações para o Armazenamento do Azure. |
x-ms-version |
Opcional. Especifica a versão da operação a ser usada para esta solicitação. Para obter mais informações, consulte Controle de versão para os Serviços de Armazenamento do Azure. |
Content-Type |
Obrigatórios. Especifica o tipo de conteúdo da carga. Os valores possíveis são application/atom+xml e application/json .Para obter mais informações sobre tipos de conteúdo válidos, consulte Formato de conteúdo para operações de Armazenamento de Tabelas. |
Content-Length |
Obrigatórios. O tamanho do corpo da solicitação. |
If-Match |
Obrigatórios. O cliente pode especificar o ETag para a entidade na solicitação, para comparar com o ETag mantido pelo serviço para fins de simultaneidade otimista. A operação de atualização será executada somente se o ETag enviado pelo cliente corresponder ao valor mantido pelo servidor. Essa correspondência indica que a entidade não foi modificada desde que foi recuperada pelo cliente.Para forçar uma atualização incondicional, defina If-Match como o caractere curinga (*). |
x-ms-client-request-id |
Opcional. Fornece um valor opaco gerado pelo cliente com um limite de caracteres kib (1 kibibyte) que é registrado nos logs quando o registro em log é configurado. É altamente recomendável que você use esse cabeçalho para correlacionar atividades do lado do cliente com solicitações recebidas pelo servidor. Para obter mais informações, consulte Monitorar o Armazenamento de Tabelas do Azure. |
Corpo da solicitação
A Update Entity
operação envia a entidade para ser atualizada como um OData
conjunto de entidades, que pode ser um JSON ou um feed Atom. Para obter mais informações, consulte Inserindo e atualizando entidades.
Observação
JSON é o formato de conteúdo recomendado e é o único formato com suporte para a versão 2015-12-11 e posterior.
Solicitação de exemplo
JSON (versão 2013-08-15 e posterior)
Este exemplo mostra um URI de solicitação de exemplo, os cabeçalhos de solicitação associados e o corpo da solicitação para um feed 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"
}
Feed Atom (versões anteriores a 11/12/2015)
Este exemplo mostra um URI de solicitação de exemplo, os cabeçalhos de solicitação associados e o corpo da solicitação de um feed 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>
Resposta
A resposta inclui um código de status HTTP e um conjunto de cabeçalhos de resposta.
Código de status
Uma operação bem-sucedida retorna o código de status 204 (Sem conteúdo). Para obter informações sobre códigos status, consulte Códigos de erro e status e códigos de erro do Armazenamento de Tabelas.
Cabeçalhos de resposta
A resposta inclui os cabeçalhos a seguir. A resposta também pode incluir cabeçalhos HTTP padrão adicionais. Todos os cabeçalhos padrão estão em conformidade com a especificação do protocolo HTTP/1.1.
Cabeçalho de resposta | Descrição |
---|---|
ETag |
O ETag para a entidade. |
x-ms-request-id |
Esse cabeçalho identifica exclusivamente a solicitação que foi feita e pode ser usado para solucionar problemas da solicitação. Para obter mais informações, consulte Solução de problemas de operações de API. |
x-ms-version |
Indica a versão do Armazenamento de Tabelas usada para executar a solicitação. Esse cabeçalho é retornado para solicitações feitas na versão 2009-09-19 e mais recente. |
Date |
Um valor de data/hora UTC que indica a hora em que a resposta foi iniciada. O serviço gera esse valor. |
x-ms-client-request-id |
Você pode usar esse cabeçalho para solucionar problemas de solicitações e respostas correspondentes. O valor desse cabeçalho será igual ao valor do x-ms-client-request-id cabeçalho, se ele estiver presente na solicitação. O valor é no máximo 1.024 caracteres ASCII visíveis. Se o x-ms-client-request-id cabeçalho não estiver presente na solicitação, esse cabeçalho não estará presente na resposta. |
Corpo da resposta
Nenhum.
Resposta de exemplo
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
Autorização
O proprietário da conta pode executar essa operação. Além disso, qualquer pessoa com uma assinatura de acesso compartilhado que tenha permissão para executar essa operação pode fazer isso.
Comentários
Ao atualizar uma entidade, você deve especificar as propriedades do PartitionKey
sistema e RowKey
como parte da operação de atualização.
Uma entidade fornece ETag
simultaneidade otimista padrão para operações de atualização. O ETag
valor é opaco e não deve ser lido ou confiado. Antes que ocorra uma operação de atualização, o Armazenamento de Tabelas verifica se o valor atual ETag
da entidade é idêntico ao ETag
valor incluído na solicitação de atualização no If-Match
cabeçalho . Se os valores forem idênticos, o Armazenamento de Tabelas determinará que a entidade não foi modificada desde que foi recuperada e a operação de atualização continuará.
Se a entidade for ETag
diferente daquela especificada com a solicitação de atualização, a operação de atualização falhará com status código 412 (Falha na pré-condição). Esse erro indica que a entidade foi alterada no servidor desde a recuperação. Para resolver esse erro, recupere novamente a entidade e reedite a solicitação.
Para forçar uma operação de atualização incondicional, defina o valor do cabeçalho If-Match
como o caractere curinga (*) na solicitação. Passar esse valor para a operação substitui a simultaneidade otimista padrão e ignora qualquer incompatibilidade de ETag
valores.
Se o If-Match
cabeçalho estiver ausente da solicitação na versão 2011-08-18 ou posterior, o serviço executará uma operação Inserir ou Substituir Entidade (upsert). Em versões anteriores a 18-08-2011, o serviço retorna status código 400 (Solicitação Incorreta).
O Armazenamento de Tabelas não persiste null
valores para propriedades. Especificar uma propriedade com um null
valor é equivalente a omitir essa propriedade na solicitação.
Observação
Você pode aproveitar qualquer comportamento para remover uma propriedade de uma entidade.
Para digitar explicitamente uma propriedade, especifique o tipo de dados apropriado OData
definindo o m:type
atributo dentro da definição de propriedade no feed Atom. Para obter mais informações sobre como digitar propriedades, consulte Inserindo e atualizando entidades.
Qualquer aplicativo que possa autorizar e enviar uma solicitação HTTP PUT
pode atualizar uma entidade.
Para obter informações sobre como executar operações de atualização em lote, consulte Executando transações de grupo de entidades.
Confira também
Merge Entity
Autorizar solicitações para o Armazenamento do Azure
Definindo os cabeçalhos de versão do serviço de dados OData
Status e códigos de erro
Códigos de erro do Armazenamento de Tabelas