Entiteit samenvoegen

Met Merge Entity de bewerking wordt een bestaande entiteit bijgewerkt door de eigenschappen van de entiteit bij te werken. Met deze bewerking wordt de bestaande entiteit niet vervangen, zoals de bewerking Entiteit bijwerken wel doet.

Aanvraag

De Merge Entity aanvraag kan als volgt worden samengesteld. HTTPS wordt aanbevolen. Vervang myaccount door de naam van uw opslagaccount, door de naam van uw tabel en mytable myPartitionKey en myRowKey door de naam van de partitiesleutel en rijsleutel die de entiteit identificeren die moet worden bijgewerkt:

Methode Aanvraag-URI HTTP-versie
MERGE https://myaccount.table.core.windows.net/mytable(PartitionKey='myPartitionKey', RowKey='myRowKey') HTTP/1.1

Het adres van de entiteit die moet worden bijgewerkt, kan een aantal formulieren in de aanvraag-URI aannemen. Zie OData Protocol voor meer informatie.

Geëmuleerde opslagservice-URI

Wanneer u een aanvraag indient voor de geëmuleerde opslagservice, geeft u de hostnaam van de emulator en de Table-servicepoort op als , gevolgd door de geëmuleerde naam van 127.0.0.1:10002 het opslagaccount:

Methode Aanvraag-URI HTTP-versie
MERGE http://127.0.0.1:10002/devstoreaccount1/mytable(PartitionKey='myPartitionKey', RowKey='myRowKey') HTTP/1.1

De Tabelservice in de opslagemulator verschilt op verschillende manieren van Windows® Azure™ Table-service. Zie Differences Between the Storage Emulator and Azure Storage Services (Verschillen tussen de Storage Emulator en Azure Storage Services) voor meer informatie.

URI-parameters

De volgende aanvullende parameters kunnen worden opgegeven op de aanvraag-URI.

Parameter Beschrijving
timeout Optioneel. De time-outparameter wordt uitgedrukt in seconden. Zie Time-outs instellen voor Tabelservicebewerkingen voor meer informatie.

Aanvraagheaders

In de volgende tabel worden de vereiste en optionele aanvraagheaders beschreven.

Aanvraagheader Beschrijving
Authorization Vereist. Hiermee geeft u het autorisatieschema, de accountnaam en de handtekening op. Zie Aanvragen voor toegang tot Azure Storage voor meer Azure Storage.
Date of x-ms-date Vereist. Geef de Coordinated Universal Time (UTC) op voor de aanvraag. Zie Aanvragen voor toegang tot Azure Storage voor meer Azure Storage.
x-ms-version Optioneel. Hiermee geeft u de versie van de bewerking moet worden gebruikt voor deze aanvraag. Zie Versioning for the Azure Storage Services (Versie Azure Storage Services) voor meer informatie.
Content-Type Vereist. Hiermee geeft u het inhoudstype van de payload op. Mogelijke waarden zijn application/atom+xml en application/json .

Zie Nettolading-indeling voor Tabelservicebewerkingen voor meer informatie over geldige inhoudstypen.
Content-Length Vereist. De lengte van de aanvraagtekst.
If-Match Vereist. De client kan de ETag voor de entiteit op de aanvraag opgeven om te vergelijken met de ETag die wordt onderhouden door de service met het oog op optimistische gelijktijdigheid. De updatebewerking wordt alleen uitgevoerd als de ETag die door de client wordt verzonden overeenkomt met de waarde die door de server wordt onderhouden, wat aangeeft dat de entiteit niet is gewijzigd sinds deze is opgehaald door de client.

Als u een onvoorwaardelijke update wilt forceer, stelt u in If-Match op het jokerteken (*).
x-ms-client-request-id Optioneel. Biedt een door de client gegenereerde, ondoorzichtige waarde met een limiet van 1 KiB die wordt vastgelegd in de analyselogboeken wanneer logboekregistratie van opslaganalyse is ingeschakeld. Het gebruik van deze header wordt ten zeerste aanbevolen voor het correleren van activiteiten aan clientzijde met aanvragen die door de server worden ontvangen. Zie About Storage Analytics Logging and Azure Logging: Using Logs to Track Storage Requests voor meer informatie.

Aanvraagbody

De bewerking verzendt de entiteit om te worden bijgewerkt als een OData-entiteit. Dit kan een Merge Entity JSON- of een Atom-feed zijn. Zie Inserting and Updating Entities (Entiteiten invoegen en bijwerken) voor meer informatie.

Antwoord

Het antwoord bevat een HTTP-statuscode en een set antwoordheaders.

Statuscode

Een geslaagde bewerking retourneert statuscode 204 (geen inhoud).

Zie Status- en foutcodes en Tabelservicefoutcodes voor meer informatie over statuscodes.

Antwoordheaders

Het antwoord voor deze bewerking bevat de volgende headers. Het antwoord kan ook aanvullende standaard HTTP-headers bevatten. Alle standaardheaders voldoen aan de HTTP/1.1-protocolspecificatie.

Antwoordheader Description
ETag De ETag voor de entiteit.
x-ms-request-id Deze header identificeert op unieke manier de aanvraag die is gemaakt en kan worden gebruikt voor het oplossen van problemen met de aanvraag. Zie Troubleshooting API Operations (Problemen met API-bewerkingen oplossen) voor meer informatie.
x-ms-version Geeft de versie aan van de Table-service die wordt gebruikt om de aanvraag uit te voeren. Deze header wordt geretourneerd voor aanvragen voor versie 2009-09-19 en hoger.
Date Een UTC-datum/tijd-waarde die wordt gegenereerd door de service die het tijdstip aangeeft waarop het antwoord is gestart.
x-ms-client-request-id Deze header kan worden gebruikt voor het oplossen van problemen met aanvragen en bijbehorende antwoorden. De waarde van deze header is gelijk aan de waarde van de header als deze aanwezig is in de aanvraag en de waarde uit x-ms-client-request-id 1024 zichtbare ASCII-tekens bestaat. Als de x-ms-client-request-id header niet aanwezig is in de aanvraag, is deze header niet aanwezig in het antwoord.

Antwoord body

Geen.

Voorbeeldreactie

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  

Autorisatie

Deze bewerking kan worden uitgevoerd door de accounteigenaar en door iedereen met een shared access signature die is machtigingen heeft om deze bewerking uit te voeren.

Opmerkingen

De Tabelservice behoudt geen null waarden voor eigenschappen. Het opgeven van een eigenschap met een waarde is gelijk aan het null weglaten van die eigenschap in de aanvraag. Alleen eigenschappen met null niet-waarden worden bijgewerkt door de Merge Entity bewerking.

Een eigenschap kan niet worden verwijderd met een Merge Entity bewerking. Als u een eigenschap uit een entiteit wilt verwijderen, vervangt u de entiteit door de bewerking Entiteit bijwerken aan te roepen.

Wanneer u een entiteit samenvoegt, moet u de systeemeigenschappen PartitionKey en opgeven als onderdeel van de RowKey samenvoegingsbewerking.

De ETag van een entiteit biedt standaard optimistische gelijktijdigheid voor samenvoegbewerkingen. De ETag-waarde is ondoorzichtig en mag niet worden gelezen of vertrouwd. Voordat een samenvoegingsbewerking plaatsvindt, controleert de Table-service of de huidige ETag-waarde van de entiteit identiek is aan de ETag-waarde die is opgenomen in de aanvraag in de If-Match header. Als de waarden identiek zijn, bepaalt de Tabelservice dat de entiteit niet is gewijzigd sinds deze is opgehaald en de samenvoegingsbewerking wordt uitgevoerd.

Als de ETag van de entiteit verschilt van de ETag die is opgegeven met de samenvoegingsaanvraag, mislukt de samenvoegbewerking met statuscode 412 (Voorwaarde mislukt). Deze fout geeft aan dat de entiteit is gewijzigd op de server sinds deze is opgehaald. U kunt deze fout oplossen door de entiteit opnieuw op te halen en de aanvraag opnieuw uit te geven.

Als u een onvoorwaardelijke samenvoegingsbewerking wilt forceren, stelt u de waarde van de header in op If-Match het jokerteken (*) op de aanvraag. Door deze waarde door te geven aan de bewerking, wordt de standaard optimistische gelijktijdigheid overschrijven en eventuele niet-overeenkomende ETag-waarden genegeerd.

Als de header ontbreekt in de aanvraag in versies If-Match 2011-08-18 en hoger, voert de service een bewerking Insert or Merge Entity (upsert) uit. In versies vóór 2011-08-18 retourneert de service statuscode 400 (Bad Request).

Elke toepassing die een HTTP MERGE-aanvraag kan autoreren en verzenden, kan een entiteit samenvoegen. Zie How to: Add, Modify, and Delete Entities(Entiteiten toevoegen, wijzigen en verwijderen) voor meer informatie over het maken van een query met behulp van HTTP MERGE.

Zie Entiteitsgroepstransacties uitvoeren voor meer informatie over het uitvoeren van batch-samenvoegbewerkingen.

Zie ook

Entiteit bijwerken
Aanvragen voor Azure Storage
De OData Data Service-versieheaders instellen
Status- en foutcodes
Tabelservicefoutcodes