Dela via


Uppdatera entitet

Åtgärden Update Entity uppdaterar en befintlig entitet i en tabell. Åtgärden Update Entity ersätter hela entiteten och du kan använda åtgärden för att ta bort egenskaper.

Förfrågan

Du kan skapa begäran på Update Entity följande sätt. HTTPS rekommenderas. Ersätt myaccount med namnet på ditt lagringskonto och mytable med namnet på tabellen. Ersätt myPartitionKey och myRowKey med namnet på partitionsnyckeln och radnyckeln som identifierar den entitet som ska uppdateras.

Metod URI för förfrågan HTTP-version
PUT https://myaccount.table.core.windows.net/mytable(PartitionKey='myPartitionKey', RowKey='myRowKey') HTTP/1.1

Adressen till den entitet som ska uppdateras kan ha ett antal formulär på begärande-URI:n. Mer information finns i OData-protokollet .

Emulerad lagringstjänst-URI

När du gör en begäran mot den emulerade lagringstjänsten anger du emulatorns värdnamn och Azure Table Storage-porten som 127.0.0.1:10002följt av namnet på det emulerade lagringskontot.

Metod URI för förfrågan HTTP-version
PUT http://127.0.0.1:10002/devstoreaccount1/mytable(PartitionKey='myPartitionKey', RowKey='myRowKey') HTTP/1.1

Table Storage i lagringsemulatorn skiljer sig från Azure Table Storage på flera olika sätt. Mer information finns i Skillnader mellan lagringsemulatorn och Azure Storage-tjänsterna.

URI-parametrar

Du kan ange följande ytterligare parametrar för begärande-URI:n.

Parameter Beskrivning
timeout Valfritt. Parametern timeout uttrycks i sekunder. Mer information finns i Ställa in tidsgränser för Table Storage-åtgärder.

Begärandehuvuden

I följande tabell beskrivs obligatoriska och valfria begärandehuvuden.

Begärandehuvud Beskrivning
Authorization Krävs. Anger auktoriseringsschema, kontonamn och signatur. Mer information finns i Auktorisera begäranden till Azure Storage.
Date eller x-ms-date Krävs. Anger Coordinated Universal Time (UTC) för begäran. Mer information finns i Auktorisera begäranden till Azure Storage.
x-ms-version Valfritt. Anger vilken version av åtgärden som ska användas för den här begäran. Mer information finns i Versionshantering för Azure Storage-tjänsterna.
Content-Type Krävs. Anger nyttolastens innehållstyp. Möjliga värden är application/atom+xml och application/json.

Mer information om giltiga innehållstyper finns i Nyttolastformat för Table Storage-åtgärder.
Content-Length Krävs. Längden på begärandetexten.
If-Match Krävs. Klienten kan ange ETag för entiteten på begäran, för att jämföra med underhålls ETag av tjänsten i syfte att optimistisk samtidighet. Uppdateringsåtgärden utförs endast om den ETag som skickas av klienten matchar värdet som underhålls av servern. Den här matchningen anger att entiteten inte har ändrats sedan den hämtades av klienten.

Om du vill framtvinga en ovillkorlig uppdatering anger du If-Match till jokertecknet (*).
x-ms-client-request-id Valfritt. Tillhandahåller ett klientgenererat, täckande värde med en teckengräns på 1 kibibyte (KiB) som registreras i loggarna när loggning har konfigurerats. Vi rekommenderar starkt att du använder det här huvudet för att korrelera aktiviteter på klientsidan med begäranden som servern tar emot. Mer information finns i Övervaka Azure Table Storage.

Begärandetext

Åtgärden Update Entity skickar entiteten som ska uppdateras som en entitetsuppsättning OData , som kan vara antingen en JSON- eller en Atom-feed. Mer information finns i Infoga och uppdatera entiteter.

Anteckning

JSON är det rekommenderade nyttolastformatet och det är det enda format som stöds för version 2015-12-11 och senare.

Exempelbegäran

JSON (version 2013-08-15 och senare)

Det här exemplet visar en exempelbegärans-URI, tillhörande begärandehuvuden och begärandetexten för en 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"  
}  

Atomfeed (tidigare versioner än 2015-12-11)

Det här exemplet visar en exempelbegärans-URI, tillhörande begärandehuvuden och begärandetexten för en 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>  

Svarsåtgärder

Svaret innehåller en HTTP-statuskod och en uppsättning svarshuvuden.

Statuskod

En lyckad åtgärd returnerar statuskod 204 (inget innehåll). Information om statuskoder finns i Status- och felkoder och Tabelllagringsfelkoder.

Svarshuvuden

Svaret innehåller följande rubriker. Svaret kan även innehålla ytterligare STANDARD HTTP-huvuden. Alla standardhuvuden överensstämmer med http/1.1-protokollspecifikationen.

Svarsrubrik Description
ETag ETag för entiteten.
x-ms-request-id Det här huvudet identifierar unikt den begäran som har gjorts och kan användas för att felsöka begäran. Mer information finns i Felsöka API-åtgärder.
x-ms-version Anger vilken version av Table Storage som användes för att köra begäran. Det här huvudet returneras för begäranden som görs mot version 2009-09-19 och senare.
Date Ett datum-/tidsvärde för UTC som anger den tid då svaret initierades. Tjänsten genererar det här värdet.
x-ms-client-request-id Du kan använda det här huvudet för att felsöka begäranden och motsvarande svar. Värdet för det här huvudet är lika med värdet för x-ms-client-request-id huvudet, om det finns i begäran. Värdet är högst 1 024 synliga ASCII-tecken. Om rubriken x-ms-client-request-id inte finns i begäran kommer det här huvudet inte att finnas i svaret.

Själva svaret

Inga.

Exempelsvar

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  

Auktorisering

Kontoägaren kan utföra den här åtgärden. Dessutom kan alla med en signatur för delad åtkomst som har behörighet att utföra den här åtgärden göra det.

Kommentarer

När du uppdaterar en entitet måste du ange systemegenskaperna PartitionKey och RowKey som en del av uppdateringsåtgärden.

En entitet ger ETag standardoptim samtidighet för uppdateringsåtgärder. Värdet ETag är ogenomskinlig och bör inte läsas eller användas. Innan en uppdateringsåtgärd utförs verifierar Table Storage att entitetens aktuella ETag värde är identiskt med värdet ETag som ingår i uppdateringsbegäran i If-Match rubriken. Om värdena är identiska avgör Table Storage att entiteten inte har ändrats sedan den hämtades och uppdateringsåtgärden fortsätter.

Om entiteten skiljer sig från den som anges med uppdateringsbegäran misslyckas uppdateringsåtgärden ETag med statuskod 412 (Förhandsvillkoret misslyckades). Det här felet anger att entiteten har ändrats på servern sedan den hämtades. Lös det här felet genom att hämta entiteten igen och skicka begäran igen.

Om du vill framtvinga en ovillkorlig uppdateringsåtgärd anger du värdet If-Match för rubriken till jokertecknet (*) i begäran. Om du skickar det här värdet till åtgärden åsidosätts standardoptim samtidighet och eventuella matchningsfel i ETag värden ignoreras.

If-Match Om huvudet saknas i begäran i version 2011-08-18 eller senare utför tjänsten en åtgärd för att infoga eller ersätta entitet (upsert). I tidigare versioner än 2011-08-18 returnerar tjänsten statuskod 400 (felaktig begäran).

Table Storage sparar null inte värden för egenskaper. Att ange en egenskap med ett null värde motsvarar att utelämna egenskapen i begäran.

Anteckning

Du kan dra nytta av något av beteendena för att ta bort en egenskap från en entitet.

Om du uttryckligen vill ange en egenskap anger du lämplig OData datatyp genom att ange m:type attributet i egenskapsdefinitionen i Atom-feeden. Mer information om hur du skriver egenskaper finns i Infoga och uppdatera entiteter.

Alla program som kan auktorisera och skicka en HTTP-begäran PUT kan uppdatera en entitet.

Information om hur du utför batchuppdateringsåtgärder finns i Utföra entitetsgrupptransaktioner.

Se även

Sammanfoga entitet
Auktorisera begäranden till Azure Storage
Ange versionshuvuden för OData-datatjänsten
Status- och felkoder
Felkoder för Table Storage