Entiteit bijwerken

Met de Update Entity bewerking wordt een bestaande entiteit in een tabel bijgewerkt. De Update Entity bewerking vervangt de hele entiteit en u kunt de bewerking gebruiken om eigenschappen te verwijderen.

Aanvraag

U kunt de Update Entity aanvraag als volgt samenstellen. HTTPS wordt aanbevolen. Vervang myaccount door de naam van uw opslagaccount en mytable door de naam van uw tabel. Vervang myPartitionKey en myRowKey door de naam van de partitiesleutel en rijsleutel waarmee de entiteit wordt geïdentificeerd die moet worden bijgewerkt.

Methode Aanvraag-URI HTTP-versie
PUT 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 vormen aannemen op de aanvraag-URI. Zie het OData-protocol voor meer informatie.

Geëmuleerde opslagservice-URI

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

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

Table Storage in de opslagemulator verschilt op verschillende manieren van Azure Table Storage. Zie Verschillen tussen de opslagemulator en Azure Storage-services voor meer informatie.

URI-parameters

U kunt de volgende aanvullende parameters opgeven voor de aanvraag-URI.

Parameter Beschrijving
timeout Optioneel. De timeout parameter wordt uitgedrukt in seconden. Zie Time-outs instellen voor Table Storage-bewerkingen voor meer informatie.

Aanvraagheaders

In de volgende tabel worden vereiste en optionele aanvraagheaders beschreven.

Aanvraagheader Beschrijving
Authorization Vereist. Hiermee geeft u het autorisatieschema, de accountnaam en de handtekening. Zie Aanvragen voor Azure Storage autoriseren voor meer informatie.
Date of x-ms-date Vereist. Geef de Coordinated Universal Time (UTC) op voor de aanvraag. Zie Aanvragen voor Azure Storage autoriseren voor meer informatie.
x-ms-version Optioneel. Hiermee geeft u de versie van de bewerking te gebruiken voor deze aanvraag. Zie Versiebeheer voor de 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 Payload-indeling voor Table Storage-bewerkingen voor meer informatie over geldige inhoudstypen.
Content-Length Vereist. De lengte van de aanvraagtekst.
If-Match Vereist. De client kan de ETag opgeven voor de entiteit op de aanvraag, om te vergelijken met de ETag die door de service wordt onderhouden voor optimistische gelijktijdigheid. De updatebewerking wordt alleen uitgevoerd als de ETag verzonden door de client overeenkomt met de waarde die door de server wordt onderhouden. Deze overeenkomst geeft aan dat de entiteit niet is gewijzigd sinds deze is opgehaald door de client.

Als u een onvoorwaardelijke update wilt afdwingen, stelt u If-Match in op het jokerteken (*).
x-ms-client-request-id Optioneel. Biedt een door de client gegenereerde, ondoorzichtige waarde met een limiet van 1 kibibyte (KiB) die wordt vastgelegd in de logboeken wanneer logboekregistratie is geconfigureerd. We raden u ten zeerste aan deze header te gebruiken om activiteiten aan de clientzijde te correleren met aanvragen die de server ontvangt. Zie Azure Table Storage bewaken voor meer informatie.

Aanvraagbody

De Update Entity bewerking verzendt de entiteit die moet worden bijgewerkt als een OData entiteitenset, die een JSON- of een Atom-feed kan zijn. Zie Entiteiten invoegen en bijwerken voor meer informatie.

Notitie

JSON is de aanbevolen nettoladingindeling en is de enige indeling die wordt ondersteund voor versie 2015-12-11 en hoger.

Voorbeeldaanvraag

JSON (versie 2013-08-15 en hoger)

In dit voorbeeld ziet u een voorbeeld van een aanvraag-URI, de bijbehorende aanvraagheaders en de aanvraagbody voor een JSON-feed.

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"  
}  

Atom feed (versies ouder dan 2015-12-11)

In dit voorbeeld ziet u een voorbeeld van een aanvraag-URI, de bijbehorende aanvraagheaders en de aanvraagbody voor een Atom-feed.

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>  

Antwoord

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

Statuscode

Een geslaagde bewerking retourneert statuscode 204 (Geen inhoud). Zie Status- en foutcodes enTable Storage-foutcodes voor meer informatie over statuscodes.

Antwoordheaders

Het antwoord bevat de volgende headers. Het antwoord kan ook extra, standaard HTTP-headers bevatten. Alle standaardheaders voldoen aan de HTTP/1.1-protocolspecificatie.

Antwoordheader Beschrijving
ETag De ETag voor de entiteit.
x-ms-request-id Deze header identificeert op unieke wijze de aanvraag die is gedaan en kan worden gebruikt voor het oplossen van problemen met de aanvraag. Zie Problemen met API-bewerkingen oplossen voor meer informatie.
x-ms-version Geeft de versie van Table Storage aan die wordt gebruikt om de aanvraag uit te voeren. Deze header wordt geretourneerd voor aanvragen die zijn gedaan op basis van versie 2009-09-19 en hoger.
Date Een UTC-datum/tijd-waarde die de tijd aangeeft waarop het antwoord is gestart. De service genereert deze waarde.
x-ms-client-request-id U kunt deze header gebruiken om problemen met aanvragen en bijbehorende antwoorden op te lossen. De waarde van deze header is gelijk aan de waarde van de x-ms-client-request-id header, als deze aanwezig is in de aanvraag. De waarde is maximaal 1024 zichtbare ASCII-tekens. Als de x-ms-client-request-id header niet aanwezig is in de aanvraag, is deze header niet aanwezig in het antwoord.

Hoofdtekst van de reactie

Geen.

Voorbeeldantwoord

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  

Autorisatie

De accounteigenaar kan deze bewerking uitvoeren. Bovendien kan iedereen met een Shared Access Signature die gemachtigd is om deze bewerking uit te voeren, dit doen.

Opmerkingen

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

Een entiteit ETag biedt standaard optimistische gelijktijdigheid voor updatebewerkingen. De ETag waarde is ondoorzichtig en mag niet worden gelezen of vertrouwd. Voordat er een updatebewerking wordt uitgevoerd, controleert Table Storage of de huidige ETag waarde van de entiteit identiek is aan de ETag waarde die is opgenomen in de updateaanvraag in de If-Match header. Als de waarden identiek zijn, bepaalt Table Storage dat de entiteit niet is gewijzigd sinds deze is opgehaald en wordt de updatebewerking voortgezet.

Als de entiteit ETag verschilt van die die is opgegeven met de updateaanvraag, mislukt de updatebewerking met statuscode 412 (voorwaarde is 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 voeren.

Als u een onvoorwaardelijke updatebewerking wilt afdwingen, stelt u de waarde van de If-Match koptekst in op het jokerteken (*) voor de aanvraag. Het doorgeven van deze waarde aan de bewerking overschrijft de standaard optimistische gelijktijdigheid en negeert eventuele niet-overeenkomende ETag waarden.

Als de If-Match header ontbreekt in de aanvraag in versie 2011-08-18 of hoger, voert de service de bewerking Entiteit invoegen of vervangen (upsert) uit. In versies ouder dan 2011-08-18 retourneert de service statuscode 400 (Ongeldige aanvraag).

Table Storage bewaart null geen waarden voor eigenschappen. Het opgeven van een eigenschap met een null waarde is gelijk aan het weglaten van die eigenschap in de aanvraag.

Notitie

U kunt gebruikmaken van beide gedragingen om een eigenschap uit een entiteit te verwijderen.

Als u expliciet een eigenschap wilt typen, geeft u het juiste OData gegevenstype op door het kenmerk in te m:type stellen binnen de eigenschapsdefinitie in de Atom-feed. Zie Entiteiten invoegen en bijwerken voor meer informatie over het typen van eigenschappen.

Elke toepassing die een HTTP-aanvraag PUT kan autoriseren en verzenden, kan een entiteit bijwerken.

Zie Entiteitsgroepstransacties uitvoeren voor informatie over het uitvoeren van batchupdatebewerkingen.

Zie ook

Entiteit samenvoegen
Aanvragen voor Azure Storage autoriseren
De headers van de OData-gegevensserviceversie instellen
Status en foutcodes
Table Storage-foutcodes