Entidade intercalar

A Merge Entity operação atualiza uma entidade existente ao atualizar as propriedades da entidade. Esta operação não substitui a entidade existente, tal como acontece com a operação Atualizar Entidade .

Pedir

Pode construir o pedido da Merge Entity seguinte forma. É recomendado HTTPS. Substitua myaccount pelo nome da sua conta de armazenamento e mytable pelo nome da sua tabela. Substitua myPartitionKey e myRowKey pelo nome da chave de partição e da chave de linha que identifica a entidade a atualizar.

Método URI do pedido Versão HTTP
MERGE https://myaccount.table.core.windows.net/mytable(PartitionKey='myPartitionKey', RowKey='myRowKey') HTTP/1.1

O endereço da entidade a atualizar pode assumir vários formulários no URI do pedido. Veja o Protocolo OData para obter detalhes adicionais.

URI do serviço de armazenamento emulado

Quando fizer um pedido contra o serviço de armazenamento emulado, especifique o nome de anfitrião do emulador e a porta do Armazenamento de Tabelas do Azure como 127.0.0.1:10002, seguido do nome da conta de armazenamento emulada.

Método URI do pedido 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 formas. Para obter mais informações, veja Diferenças entre o emulador de armazenamento e os serviços de Armazenamento do Azure.

Parâmetros URI

Pode especificar os seguintes parâmetros adicionais no URI do pedido.

Parâmetro Description
timeout Opcional. O timeout parâmetro é expresso em segundos. Para obter mais informações, veja Setting timeouts for Table Storage operations (Definir tempos limite para operações de Armazenamento de Tabelas).

Cabeçalhos do pedido

A tabela seguinte descreve os cabeçalhos de pedido obrigatórios e opcionais.

Cabeçalho do pedido Description
Authorization Obrigatório. Especifica o esquema de autorização, o nome da conta e a assinatura. Para obter mais informações, veja Autorizar pedidos para o Armazenamento do Azure.
Date ou x-ms-date Obrigatório. Especifica a Hora Universal Coordenada (UTC) do pedido. Para obter mais informações, veja Autorizar pedidos para o Armazenamento do Azure.
x-ms-version Opcional. Especifica a versão da operação a utilizar para este pedido. Para obter mais informações, veja Controlo de versões dos serviços de Armazenamento do Azure.
Content-Type Obrigatório. Especifica o tipo de conteúdo do payload. Os valores possíveis são application/atom+xml e application/json.

Para obter mais informações sobre tipos de conteúdo válidos, veja Formato payload para operações de Armazenamento de Tabelas.
Content-Length Obrigatório. O comprimento do corpo do pedido.
If-Match Obrigatório. O cliente pode especificar o ETag para a entidade no pedido, para comparar com o ETag mantido pelo serviço para efeitos de simultaneidade otimista. A operação de atualização só será efetuada se o ETag enviado pelo cliente corresponder ao valor mantido pelo servidor. Esta correspondência indica que a entidade não foi modificada desde que foi obtida pelo cliente.

Para forçar uma atualização incondicional, defina If-Match para o caráter universal (*).
x-ms-client-request-id Opcional. Fornece um valor opaco gerado pelo cliente com um limite de carateres de 1 kibibyte (KiB) que é registado nos registos quando o registo é configurado. Recomendamos vivamente que utilize este cabeçalho para correlacionar as atividades do lado do cliente com os pedidos que o servidor recebe. Para obter mais informações, veja Monitorizar o Armazenamento de Tabelas do Azure.

Corpo do pedido

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, veja Inserir e atualizar entidades.

Resposta

A resposta inclui um código de estado HTTP e um conjunto de cabeçalhos de resposta.

Código de estado

Uma operação bem-sucedida devolve o código de estado 204 (Sem Conteúdo). Para obter informações sobre códigos de estado, veja Códigos de estado e de erro e códigos de erro do Armazenamento de Tabelas.

Cabeçalhos de resposta

A resposta para esta operação inclui os seguintes cabeçalhos. 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 Este cabeçalho identifica exclusivamente o pedido que foi feito e pode ser utilizado para resolver o pedido. Para obter mais informações, veja Resolver problemas de operações da API.
x-ms-version Indica a versão do Armazenamento de Tabelas utilizada para executar o pedido. Este cabeçalho é devolvido para pedidos feitos na versão 2009-09-19 e posterior.
Date Um valor de data/hora UTC que indica a hora em que a resposta foi iniciada. O serviço gera este valor.
x-ms-client-request-id Pode utilizar este cabeçalho para resolver problemas de pedidos e respostas correspondentes. O valor deste cabeçalho é igual ao valor do x-ms-client-request-id cabeçalho, se estiver presente no pedido. O valor é, no máximo, 1024 carateres ASCII visíveis. Se o x-ms-client-request-id cabeçalho não estiver presente no pedido, este cabeçalho não estará presente na resposta.

Corpo da resposta

Nenhum.

Resposta de amostra

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 efetuar esta operação. Além disso, qualquer pessoa com uma assinatura de acesso partilhado que tenha permissão para efetuar esta operação pode fazê-lo.

Observações

O Armazenamento de Tabelas não torna os null valores das propriedades persistentes. Especificar uma propriedade com um null valor é equivalente a omitir essa propriedade no pedido. Apenas as propriedades com valores nãonull - são atualizadas pela Merge Entity operação.

Não pode remover uma propriedade com uma Merge Entity operação. Se precisar de o fazer, substitua a entidade ao chamar a operação Atualizar Entidade .

Quando intercala uma entidade, tem de especificar as propriedades e RowKey do PartitionKey sistema como parte da operação de intercalação.

Uma entidade ETag fornece simultaneidade otimista e predefinida para operações de intercalação. O ETag valor é opaco e não deve ser lido ou confiado. Antes de ocorrer uma operação de intercalação, o Armazenamento de Tabelas verifica se o valor atual ETag da entidade é idêntico ao ETag valor incluído com o pedido no If-Match cabeçalho. Se os valores forem idênticos, o Armazenamento de Tabelas determina que a entidade não foi modificada desde que foi obtida e a operação de intercalação continua.

Se a entidade for diferente da ETag especificada com o pedido de intercalação, a operação de intercalação falhará com o código de estado 412 (Falha na Pré-condição). Este erro indica que a entidade foi alterada no servidor desde que foi obtida. Para resolver este erro, obtenha a entidade e reedita o pedido.

Para forçar uma operação de intercalação incondicional, defina o If-Match valor do cabeçalho para o caráter universal (*) no pedido. Transmitir este valor para a operação substituirá a simultaneidade predefinida e otimista e ignorará qualquer erro de correspondência nos ETag valores.

Se o If-Match cabeçalho estiver em falta no pedido na versão 2011-08-18 e posterior, o serviço efetua uma operação Inserir ou Intercalar Entidade (upsert). Em versões anteriores a 2011-08-18, o serviço devolve o código de estado 400 (Pedido Incorreto).

Qualquer aplicação que possa autorizar e enviar um HTTP MERGE pedido pode intercalar uma entidade. Para obter mais informações sobre como construir uma consulta com HTTP MERGEo , consulte Adicionar, modificar e eliminar entidades.

Para obter informações sobre a execução de operações de intercalação em lote, veja Executar transações de grupos de entidades.

Ver também

Atualizar Entidade
Autorizar pedidos para o Armazenamento do Azure
Definir os cabeçalhos da versão do serviço de dados OData
Códigos de estado e de erro
Códigos de erro do Armazenamento de Tabelas