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:10002
majd 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