Entitás egyesítése
A Merge Entity
művelet frissíti a meglévő entitást az entitás tulajdonságainak frissítésével. Ez a művelet nem helyettesíti a meglévő entitást, ahogy az Update Entity (Entitás frissítése ) művelet is.
Kérés
A kérést a Merge Entity
következőképpen hozhatja létre. A HTTPS használata ajánlott. Cserélje le a myaccount kifejezést a tárfiók nevére, a mytable értékét pedig 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ó |
---|---|---|
MERGE |
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 gazdagépnevé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ó |
---|---|---|
MERGE |
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 táremulá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érések 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érések engedélyezése az Azure Storage-ba. |
x-ms-version |
Választható. A kérelemhez használni kívánt 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 és application/json a.application/atom+xml 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 az ETag entitást a kérelemben, hogy összehasonlíthassa a ETag szolgáltatás által fenntartottval az optimista egyidejűség érdekében. A frissítési művelet csak akkor lesz végrehajtva, ha az ETag ügyfél által küldött érték megegyezik a kiszolgáló által kezelt é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 kib-os (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 Merge Entity
művelet elküldi az entitást, hogy entitásként OData
frissítve legyen, amely lehet JSON vagy Atom-hírcsatorna. További információ: Entitások beszúrása és frissítése.
Reagálás
A válasz tartalmaz egy HTTP-állapotkódot és egy válaszfejléceket.
Állapotkód
A sikeres művelet a 204-ben (tartalom nélkül) visszaadott á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 műveletre adott 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. A rendszer ezt a fejlécet adja vissza 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. A szolgáltatás létrehozza ezt az értéket. |
x-ms-client-request-id |
Ezzel a fejlécmel elháríthatja a kéréseket és a megfelelő válaszokat. A fejléc értéke megegyezik a fejléc értékével x-ms-client-request-id , 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
Content-Length: 0
Cache-Control: no-cache
Date: Mon, 25 Nov 2013 19:06:47 GMT
ETag: W/"0x5B168C7B6E589D2"
x-ms-version: 2013-08-15
DataServiceVersion: 1.0;NetFx
MaxDataServiceVersion: 2.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 a művelet végrehajtásához engedéllyel rendelkező közös hozzáférésű jogosultsággal, megteheti.
Megjegyzések
A Table Storage nem teszi állandóvá null
a tulajdonságok értékeit. Ha egy tulajdonságot értékként null
ad meg, az egyenértékű azzal, hogy kihagyja a tulajdonságot a kérelemben. A művelet csak a nemnull
értékekkel rendelkező tulajdonságokat frissíti Merge Entity
.
Művelettel Merge Entity
rendelkező tulajdonság nem távolítható el. Ha ezt meg kell tennie, cserélje le az entitást az Entitás frissítése művelet meghívásával.
Egy entitás egyesítésekor meg kell adnia a és RowKey
a PartitionKey
rendszer tulajdonságait az egyesítési művelet részeként.
Az entitások ETag
alapértelmezett, optimista egyidejűséget biztosítanak az egyesítési műveletekhez. Az ETag
érték átlátszatlan, és nem szabad elolvasni vagy támaszkodni rá. Az egyesítési művelet előtt a Table Storage ellenőrzi, hogy az entitás aktuális ETag
értéke megegyezik-e a ETag
kérelem fejlécében If-Match
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 az egyesítési művelet folytatódik.
Ha az entitás eltér ETag
az egyesítési kérelemben megadotttól, az egyesí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 a lekérése óta módosult a kiszolgálón. A hiba elhárításához kérje le az entitást, és adja ki újra a kérést.
Feltétel nélküli egyesí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 ETag
értékek eltéréseit.
Ha a If-Match
fejléc hiányzik a kérésből a 2011-08-18-es és újabb verzióban, akkor a szolgáltatás végrehajt egy Entitás beszúrása vagy egyesítése (upsert) műveletet. A 2011-08-18 előtti verziókban a szolgáltatás a 400 -os állapotkódot adja vissza (Hibás kérés).
A kérést engedélyező és küldő HTTP MERGE
alkalmazások egyesíthetik az entitásokat. További információ a lekérdezések a használatával HTTP MERGE
történő felépítéséről: Entitások hozzáadása, módosítása és törlése.
A kötegegyesí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 frissítése
Kérések engedélyezése az Azure Storage-ba
Az OData adatszolgáltatás verziófejléceinek beállítása
Állapot- és hibakódok
Table Storage-hibakódok