Merge Entity
Tramite l'operazione Merge Entity
viene aggiornata un'entità esistente aggiornando le proprietà dell'entità stessa. Questa operazione non sostituisce l'entità esistente, perché l'operazione Aggiorna entità esegue.
Richiesta
È possibile costruire la Merge Entity
richiesta come indicato di seguito. È consigliato il protocollo HTTPS. Sostituire myaccount con il nome dell'account di archiviazione e mytable con il nome della tabella. Sostituire myPartitionKey e myRowKey con il nome della chiave di partizione e della chiave di riga che identificano l'entità da aggiornare.
Metodo | URI richiesta | Versione HTTP |
---|---|---|
MERGE |
https://myaccount.table.core.windows.net/mytable(PartitionKey='myPartitionKey', RowKey='myRowKey') |
HTTP/1.1 |
L'indirizzo dell'entità da aggiornare può assumere diversi moduli nell'URI della richiesta. Per altri dettagli, vedere protocollo OData .
URI del servizio di archiviazione emulato
Quando si effettua una richiesta per il servizio di archiviazione emulato, specificare il nome host dell'emulatore e la porta di archiviazione tabelle di Azure come 127.0.0.1:10002
, seguito dal nome dell'account di archiviazione emulato.
Metodo | URI richiesta | Versione HTTP |
---|---|---|
MERGE |
http://127.0.0.1:10002/devstoreaccount1/mytable(PartitionKey='myPartitionKey', RowKey='myRowKey') |
HTTP/1.1 |
Archiviazione tabelle nell'emulatore di archiviazione differisce da Archiviazione tabelle di Azure in diversi modi. Per altre informazioni, vedere Differenze tra l'emulatore di archiviazione e i servizi di archiviazione di Azure.
Parametri URI
È possibile specificare i parametri aggiuntivi seguenti nell'URI della richiesta.
Parametro | Descrizione |
---|---|
timeout |
Facoltativa. Il parametro timeout viene espresso in secondi. Per altre informazioni, vedere Impostazione dei timeout per le operazioni di archiviazione tabelle. |
Intestazioni della richiesta
Nella seguente tabella vengono descritte le intestazioni di richiesta obbligatorie e facoltative.
Intestazione della richiesta | Descrizione |
---|---|
Authorization |
Obbligatorio. Specifica lo schema di autorizzazione, il nome dell'account e la firma. Per altre informazioni, vedere Autorizzare le richieste ad Archiviazione di Azure. |
Date o x-ms-date |
Obbligatorio. Specifica la data per la richiesta nel fuso orario UTC (Coordinated Universal Time). Per altre informazioni, vedere Autorizzare le richieste ad Archiviazione di Azure. |
x-ms-version |
Facoltativa. Specifica la versione dell'operazione da usare per questa richiesta. Per altre informazioni, vedere Controllo delle versioni per i servizi di archiviazione di Azure. |
Content-Type |
Obbligatorio. Specifica il tipo di contenuto del payload. I valori possibili sono application/atom+xml e application/json .Per altre informazioni sui tipi di contenuto validi, vedere Formato del payload per le operazioni di archiviazione tabelle. |
Content-Length |
Obbligatorio. Lunghezza del corpo della richiesta. |
If-Match |
Obbligatorio. Il client può specificare per l'entità ETag nella richiesta, in modo da confrontare con il ETag gestito dal servizio allo scopo della concorrenza ottimistica. L'operazione di aggiornamento verrà eseguita solo se l'oggetto ETag inviato dal client corrisponde al valore gestito dal server. Questa corrispondenza indica che l'entità non è stata modificata perché è stata recuperata dal client.Per forzare un aggiornamento incondizionale, impostare If-Match sul carattere jolly (*). |
x-ms-client-request-id |
Facoltativa. Fornisce un valore opaco generato dal client con un limite di caratteri di 1 kibibyte (KiB) registrato nei log al momento della configurazione della registrazione. È consigliabile usare questa intestazione per correlare le attività lato client alle richieste ricevute dal server. Per altre informazioni, vedere Monitorare l'archiviazione tabelle di Azure. |
Testo della richiesta
L'operazione Merge Entity
invia l'entità da aggiornare come OData
entità, che può essere un feed JSON o Atom. Per altre informazioni, vedere Inserimento e aggiornamento di entità.
Risposta
Nella risposta sono inclusi un codice di stato HTTP e un set di intestazioni per la risposta.
Codice stato
Un'operazione completata correttamente restituisce il codice di stato 204 (Nessun contenuto). Per informazioni sui codici di stato, vedere Codici di errore e di stato e codici di errore di archiviazione tabelle.
Intestazioni di risposta
Nella risposta per questa operazione sono incluse le intestazioni riportate di seguito; La risposta può includere anche intestazioni HTTP standard aggiuntive. Tutte le intestazioni standard sono conformi alla specifica del protocollo HTTP/1.1.
Intestazione risposta | Descrizione |
---|---|
ETag |
Oggetto ETag per l'entità. |
x-ms-request-id |
Questa intestazione identifica in modo univoco la richiesta effettuata e può essere usata per la risoluzione dei problemi della richiesta. Per altre informazioni, vedere Risoluzione dei problemi relativi alle operazioni api. |
x-ms-version |
Indica la versione di Archiviazione tabelle utilizzata per eseguire la richiesta. Questa intestazione viene restituita per le richieste effettuate nella versione 2009-09-19 e successive. |
Date |
Valore di data/ora UTC che indica l'ora in cui è stata avviata la risposta. Il servizio genera questo valore. |
x-ms-client-request-id |
È possibile usare questa intestazione per risolvere i problemi relativi alle richieste e alle risposte corrispondenti. Il valore di questa intestazione è uguale al valore dell'intestazione x-ms-client-request-id , se presente nella richiesta. Il valore è al massimo 1024 caratteri ASCII visibili. Se l'intestazione x-ms-client-request-id non è presente nella richiesta, questa intestazione non sarà presente nella risposta. |
Corpo della risposta
Nessuno.
Risposta di esempio
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
Autorizzazione
Il proprietario dell'account può eseguire questa operazione. Inoltre, chiunque disponga di una firma di accesso condiviso che dispone dell'autorizzazione per eseguire questa operazione può farlo.
Commenti
Archiviazione tabelle non rende null
persistenti i valori per le proprietà. La specifica di una proprietà con un null
valore equivale a omettere tale proprietà nella richiesta. Solo le proprietà con valori nonnull
vengono aggiornate dall'operazione Merge Entity
.
Non è possibile rimuovere una proprietà con un'operazione Merge Entity
. Se è necessario eseguire questa operazione, sostituire l'entità chiamando l'operazione Aggiorna entità .
Quando si unisce un'entità, è necessario specificare le PartitionKey
proprietà di sistema e RowKey
come parte dell'operazione di merge.
Un'entità fornisce la concorrenza predefinita ottimistica per le operazioni di ETag
merge. Il ETag
valore è opaco e non deve essere letto o considerato attendibile. Prima che si verifichi un'operazione di merge, Archiviazione tabelle verifica che il valore corrente ETag
dell'entità sia identico al ETag
valore incluso nella richiesta nell'intestazione If-Match
. Se i valori sono identici, Archiviazione tabelle determina che l'entità non è stata modificata dopo il recupero e l'operazione di unione procede.
Se l'entità è diversa da quella specificata con la richiesta di merge, l'operazione ETag
di merge ha esito negativo con codice di stato 412 (precondizione non riuscita). Questo errore indica che l'entità è stata modificata nel server dopo che è stata recuperata. Per risolvere questo errore, recuperare l'entità ed eseguire nuovamente la richiesta.
Per forzare un'operazione di unione incondizionale, impostare il valore dell'intestazione If-Match
sul carattere jolly (*) nella richiesta. Il passaggio di questo valore all'operazione eseguirà l'override della concorrenza predefinita, ottimistica e ignorerà eventuali mancate corrispondenze nei ETag
valori.
Se l'intestazione If-Match
non è presente nella richiesta nella versione 2011-08-18 e successive, il servizio esegue un'operazione di inserimento o unione di entità (upsert). Nelle versioni precedenti alla versione 2011-08-18, il servizio restituisce il codice di stato 400 (richiesta non valida).
Qualsiasi applicazione in grado di autorizzare e inviare una HTTP MERGE
richiesta può unire un'entità. Per altre informazioni sulla creazione di una query tramite HTTP MERGE
, vedere Aggiungere, modificare ed eliminare entità.
Per informazioni sull'esecuzione di operazioni di merge batch, vedere Esecuzione di transazioni del gruppo di entità.
Vedi anche
Aggiornare l'entità
Autorizzare le richieste ad Archiviazione di Azure
Impostazione delle intestazioni della versione del servizio dati OData
Stato e codici errore
Codici di errore di archiviazione tabelle