Entitás frissítése

A Update Entity művelet frissíti egy tábla egy meglévő entitását. A Update Entity művelet lecseréli a teljes entitást, és a művelettel eltávolíthatja a tulajdonságokat.

Kérés

A kérést az Update Entity alábbiak szerint hozhatja létre. A HTTPS használata ajánlott. Cserélje le a myaccount kifejezést a tárfiók nevére, és mytable a tábla nevére. Cserélje le a myPartitionKey és a myRowKey elemet a frissíteni kívánt entitást azonosító partíciókulcs és sorkulcs nevére.

Metódus Kérés URI-ja HTTP-verzió
PUT https://myaccount.table.core.windows.net/mytable(PartitionKey='myPartitionKey', RowKey='myRowKey') HTTP/1.1

A frissíteni kívánt entitás címe számos űrlapot tartalmazhat a kérelem URI-ján. További részletekért tekintse meg az OData Protokollt .

Emulált tárolási szolgáltatás URI-ja

Amikor kérést küld az emulált tárolási szolgáltatásra, adja meg az emulátor gazdanevét és az Azure Table Storage-portot , 127.0.0.1:10002majd az emulált tárfiók nevét.

Metódus Kérés URI-ja HTTP-verzió
PUT http://127.0.0.1:10002/devstoreaccount1/mytable(PartitionKey='myPartitionKey', RowKey='myRowKey') HTTP/1.1

A storage emulátorban található Table Storage többféleképpen különbözik az Azure Table Storage-tól. További információ: A storage emulátor és az Azure Storage-szolgáltatások közötti különbségek.

URI-paraméterek

A kérelem URI-ján a következő további paramétereket adhatja meg.

Paraméter Leírás
timeout Választható. A timeout paraméter másodpercben van kifejezve. További információ: Időtúllépések beállítása a Table Storage-műveletekhez.

Kérésfejlécek

Az alábbi táblázat a szükséges és nem kötelező kérelemfejléceket ismerteti.

Kérelem fejléce Leírás
Authorization Kötelező. Megadja az engedélyezési sémát, a fióknevet és az aláírást. További információ: Kérelmek engedélyezése az Azure Storage-ba.
Date vagy x-ms-date Kötelező. Megadja a kérés egyezményes világidő (UTC) formátumban kifejezett időpontját. További információ: Kérelmek engedélyezése az Azure Storage-ba.
x-ms-version Választható. A kérelemhez használandó művelet verzióját adja meg. További információ: Az Azure Storage-szolgáltatások verziószámozása.
Content-Type Kötelező. Megadja a hasznos adat tartalomtípusát. A lehetséges értékek a következők: application/atom+xml és application/json.

Az érvényes tartalomtípusokról további információt a Table Storage-műveletek hasznos adatformátuma című témakörben talál.
Content-Length Kötelező. A kérelem törzsének hossza.
If-Match Kötelező. Az ügyfél megadhatja a ETag kérelemben szereplő entitáshoz tartozó értéket, hogy összehasonlítsa a ETag szolgáltatás által fenntartottval optimista egyidejűség céljából. A frissítési műveletet csak akkor hajtja végre a rendszer, ha az ETag ügyfél által küldött érték megegyezik a kiszolgáló által fenntartott értékkel. Ez az egyezés azt jelzi, hogy az entitást nem módosították, mióta az ügyfél lekérte.

Feltétel nélküli frissítés kényszerítéséhez állítsa If-Match be a helyettesítő karaktert (*).
x-ms-client-request-id Választható. Ügyfél által generált, átlátszatlan értéket biztosít egy 1 kibibyte (KiB) karakterkorláttal, amelyet a naplózás konfigurálásakor rögzít a naplókban. Javasoljuk, hogy ezt a fejlécet használva korrelálja az ügyféloldali tevékenységeket a kiszolgáló által kapott kérésekkel. További információ: Az Azure Table Storage monitorozása.

A kérés törzse

A Update Entity művelet elküldi az entitást egy entitáskészletként OData való frissítésre, amely lehet JSON vagy Atom-hírcsatorna. További információ: Entitások beszúrása és frissítése.

Megjegyzés

A JSON az ajánlott hasznos adatformátum, és ez az egyetlen támogatott formátum a 2015-12-11-es és újabb verziókban.

Mintakérés

JSON (2013-08-15-es és újabb verziók)

Ez a példa egy mintakérési URI-t, a hozzá tartozó kérelemfejléceket és egy JSON-hírcsatorna kérelemtörzsét mutatja be.

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-hírcsatorna (2015-12-11-nél korábbi verziók)

Ez a példa egy mintakérési URI-t, a hozzá tartozó kérelemfejléceket és az Atom-hírcsatorna kérelemtörzsét mutatja be.

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>  

Reagálás

A válasz egy HTTP-állapotkódot és válaszfejléceket tartalmaz.

Állapotkód

A sikeres művelet a 204-et (nincs tartalom) állapotkódot adja vissza. Az állapotkódokkal kapcsolatos információkért lásd: Állapot- és hibakódok és Table Storage-hibakódok.

Válaszfejlécek

A válasz a következő fejléceket tartalmazza. A válasz további szabványos HTTP-fejléceket is tartalmazhat. Minden szabványos fejléc megfelel a HTTP/1.1 protokoll specifikációjának.

Válaszfejléc Description
ETag Az ETag entitáshoz tartozó.
x-ms-request-id Ez a fejléc egyedileg azonosítja a végrehajtott kérést, és a kérés hibaelhárításához használható. További információ: API-műveletek hibaelhárítása.
x-ms-version A Table Storage kérés futtatásához használt verzióját jelzi. Ez a fejléc lesz visszaadva a 2009-09-19-es és újabb verzióval kapcsolatos kérésekhez.
Date UTC dátum/idő érték, amely a válasz indításának időpontját jelzi. Ezt az értéket a szolgáltatás hozza létre.
x-ms-client-request-id Ezzel a fejléccel elháríthatja a kéréseket és a megfelelő válaszokat. Ennek a fejlécnek az értéke megegyezik a x-ms-client-request-id fejléc értékével, ha az szerepel a kérelemben. Az érték legfeljebb 1024 látható ASCII-karakter lehet. Ha a x-ms-client-request-id fejléc nem szerepel a kérelemben, akkor ez a fejléc nem jelenik meg a válaszban.

Választörzs

Nincsenek.

Mintaválasz

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  

Engedélyezés

A fióktulajdonos végrehajthatja ezt a műveletet. Emellett bárki, aki rendelkezik közös hozzáférésű jogosultságkóddal, és rendelkezik engedéllyel a művelet végrehajtásához, megteheti.

Megjegyzések

Egy entitás frissítésekkor a frissítési művelet részeként meg kell adnia a PartitionKey és RowKey a rendszertulajdonságokat.

Az entitások ETag alapértelmezett optimista egyidejűséget biztosítanak a frissítési műveletekhez. Az ETag érték átlátszatlan, és nem szabad olvasni, és nem szabad támaszkodni rá. Frissítési művelet előtt a Table Storage ellenőrzi, hogy az entitás aktuális ETag értéke megegyezik-e a ETag fejlécben található frissítési If-Match kérelemben szereplő értékkel. Ha az értékek azonosak, a Table Storage megállapítja, hogy az entitás nem lett módosítva a lekérése óta, és a frissítési művelet folytatódik.

Ha az entitások ETag eltérnek a frissítési kérelemben megadotttól, a frissítési művelet a 412-s állapotkóddal meghiúsul (az előfeltétel sikertelen). Ez a hiba azt jelzi, hogy az entitás megváltozott a kiszolgálón a lekérése óta. A hiba megoldásához kérje le újra az entitást, és adja ki újra a kérést.

Feltétel nélküli frissítési művelet kényszerítéséhez állítsa a If-Match fejléc értékét a kérelem helyettesítő karakterére (*). Ha ezt az értéket átadja a műveletnek, felülbírálja az alapértelmezett optimista egyidejűséget, és figyelmen kívül hagyja az értékek eltéréseit ETag .

Ha a If-Match fejléc hiányzik a kérésből a 2011-08-18-es vagy újabb verzióban, a szolgáltatás végrehajt egy Entitás beszúrása vagy cseréje (upsert) műveletet. A 2011-08-18-nál korábbi verziókban a szolgáltatás a 400 -os állapotkódot adja vissza (hibás kérés).

A Table Storage nem tárolja a null tulajdonságok értékeit. Ha egy tulajdonságot értékként null ad meg, azzal egyenértékű, mintha kihagyja ezt a tulajdonságot a kérelemben.

Megjegyzés

Bármelyik viselkedést kihasználva eltávolíthat egy tulajdonságot egy entitásból.

A tulajdonság explicit beírásához adja meg a megfelelő OData adattípust az m:type Atom-hírcsatorna tulajdonságdefiníciójában található attribútum beállításával. További információ a tulajdonságok beírásáról: Entitások beszúrása és frissítése.

A HTTP-kérések PUT engedélyezésére és küldésére jogosult alkalmazások frissíthetik az entitásokat.

A kötegelt frissítési műveletek végrehajtásával kapcsolatos információkért lásd: Entitáscsoport-tranzakciók végrehajtása.

Lásd még

Entitás egyesítése
Kérések engedélyezése az Azure Storage-nak
Az OData-adatszolgáltatás verziófejléceinek beállítása
Állapot- és hibakódok
Table Storage-hibakódok