Compartilhar via


Merge Entity

A operação Merge Entity atualiza uma entidade existente atualizando as propriedades da entidade. Essa operação não substitui a entidade existente, como faz a operação Atualizar Entidade .

Solicitação

Você pode construir a solicitação da Merge 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
MERGE 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
MERGE 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 carga 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, a fim de 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 Merge Entity operação envia a entidade para ser atualizada como uma OData entidade, que pode ser um JSON ou um feed Atom. Para obter mais informações, consulte Inserir e atualizar entidades.

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 para esta operação 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 é igual ao valor do x-ms-client-request-id cabeçalho, se ele estiver presente na solicitação. O valor é no máximo 1024 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  
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  

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

O Armazenamento de Tabelas não torna null os valores para propriedades persistentes. Especificar uma propriedade com um null valor é equivalente a omitir essa propriedade na solicitação. Somente as propriedades com valores nãonull são atualizadas pela Merge Entity operação.

Não é possível remover uma propriedade com uma Merge Entity operação. Se você precisar fazer isso, substitua a entidade chamando a operação Atualizar Entidade .

Ao mesclar uma entidade, você deve especificar as propriedades do PartitionKey sistema e RowKey como parte da operação de mesclagem.

Uma entidade fornece ETag simultaneidade padrão e otimista para operações de mesclagem. O ETag valor é opaco e não deve ser lido ou confiado. Antes que ocorra uma operação de mesclagem, o Armazenamento de Tabelas verifica se o valor atual ETag da entidade é idêntico ao ETag valor incluído na solicitaçã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 mesclagem continuará.

Se a entidade for diferente daquela ETag especificada com a solicitação de mesclagem, a operação de mesclagem 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 resolve esse erro, recupere a entidade e reemissue a solicitação.

Para forçar uma operação de mesclagem incondicional, defina o valor do cabeçalho If-Match como o caractere curinga (*) na solicitação. Passar esse valor para a operação substituirá a simultaneidade padrão e otimista e ignorará qualquer incompatibilidade de ETag valores.

Se o If-Match cabeçalho estiver ausente da solicitação na versão 2011-08-18 e posterior, o serviço executará uma operação Inserir ou Mesclar Entidade (upsert). Em versões anteriores a 18-08-2011, o serviço retorna status código 400 (Solicitação Incorreta).

Qualquer aplicativo que possa autorizar e enviar uma solicitação HTTP MERGE pode mesclar uma entidade. Para obter mais informações sobre como construir uma consulta usando HTTP MERGE, consulte Adicionar, modificar e excluir entidades.

Para obter informações sobre como executar operações de mesclagem em lote, consulte Executando transações de grupo de entidades.

Confira também

Atualizar Entidade
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