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:10002
fö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