Wykonywanie transakcji grupy jednostek

Usługa Table Service obsługuje transakcje wsadowe dla jednostek, które znajdują się w tej samej tabeli i należą do tej samej grupy partycji. Wiele operacji wstawianiajednostki, aktualizowaniajednostki, scalania jednostki, usuwania jednostki, wstawiania lub zastępowania jednostki oraz operacji wstawiania lub scalania jednostek jest obsługiwanych w ramach jednej transakcji.

Wymagania dotyczące transakcji grupy jednostek

Transakcja grupy jednostek musi spełniać następujące wymagania:

  • Wszystkie jednostki objęte operacjami w ramach transakcji muszą mieć tę samą PartitionKey wartość.

  • Jednostka może pojawić się tylko raz w transakcji i może zostać wykonana tylko jedna operacja względem tej jednostki.

  • Transakcja może zawierać co najwyżej 100 jednostek, a jej całkowity ładunek może być nie większy niż 4 MiB.

  • Wszystkie jednostki podlegają ograniczeniom opisanym w temacie Understanding the Table Service Data Model (Omówienie modelu danych usługi Table Service).

Obsługa usługi Table Service dla żądań wsadowych OData

Semantyka transakcji grup jednostek jest definiowana przez specyfikację protokołu OData. Specyfikacja OData definiuje następujące pojęcia dotyczące żądań wsadowych:

  • Zestaw zmian to grupa co najmniej jednej operacji wstawiania, aktualizowania lub usuwania.

  • Partia to kontener operacji, w tym co najmniej jeden zestaw zmian i operacje zapytań.

Usługa Table Service obsługuje podzbiór funkcji zdefiniowanych przez specyfikację OData:

  • Usługa Table Service obsługuje tylko jeden zestaw zmian w ramach partii. Zestaw zmian może obejmować wiele operacji wstawiania, aktualizowania i usuwania. Jeśli partia zawiera więcej niż jeden zestaw zmian, pierwszy zestaw zmian zostanie przetworzony przez usługę, a dodatkowe zestawy zmian zostaną odrzucone z kodem stanu 400 (Złe żądanie).

Ważne

Wiele operacji na pojedynczej jednostce nie jest dozwolonych w zestawie zmian.

  • Należy pamiętać, że operacja zapytania nie jest dozwolona w partii zawierającej operacje wstawiania, aktualizowania lub usuwania; Należy je przesłać w partii.

  • Operacje w zestawie zmian są przetwarzane niepodzielnie; oznacza to, że wszystkie operacje w zestawie zmian zakończyły się powodzeniem lub niepowodzeniem. Operacje są przetwarzane w kolejności określonej w zestawie zmian.

  • Usługa Table Service nie obsługuje operacji łączenia w zestawie zmian.

  • Usługa Table Service obsługuje maksymalnie 100 operacji w zestawie zmian.

Transakcje grupy jednostek za pośrednictwem interfejsu REST

W poniższych sekcjach opisano sposób konstruowania żądania wsadowego oraz interpretowania odpowiedzi wsadowej oraz pokazywania przykładów każdego z nich.

Składnia żądania usługi Batch

Aby wykonać żądanie wsadowe za pośrednictwem interfejsu REST, $batch określ opcję dla adresu URI żądania. Na przykład:

https://myaccount.table.core.windows.net/$batch  

Należy pamiętać, że adres URI żądania nie zawiera nazwy tabeli.

Żądanie wsadowe jest wysyłane do serwera z pojedynczą dyrektywą POST. To żądanie musi zawierać nagłówek; wartość nagłówka musi być ustawiona na x-ms-version 2009-04-14 lub nowszą.

Ładunek XML to wieloetapowy komunikat MIME zawierający partię i zestaw zmian. Ładunek zawiera dwie granice MIME:

  • Granica partii obejmuje zestaw zmian.

  • Granica zestawu zmian oddziela pojedyncze operacje wstawiania, aktualizowania i usuwania w partii.

Pojedyncze żądanie w zestawie zmian jest identyczne z żądaniem, gdy ta operacja jest wywoływana samodzielnie. Na przykład:

  • Aby określić nagłówek operacji aktualizacji, scalania lub usuwania, dołącz nagłówek do zestawu nagłówków żądań dla odpowiedniej operacji If-Match w zestawie zmian.

  • Aby określić format ładunku (JSON lub ATOM) dla każdej operacji w zestawie zmian, uwzględnij odpowiednie nagłówki , i , jak wyjaśniono szczegółowo w temacie Format ładunku dla operacji usługi Content-Type Accept Table Version DataServiceVersion Service.

  • Aby pominąć echo zawartości odpowiedzi dla jednostki Insert,określ nagłówek z wartością dla każdej operacji wstawiania Prefer w zestawie return-no-content zmian. Aby uzyskać więcej informacji na temat Prefer nagłówka, zobacz Podsumowanie funkcji usługi Table Service.

Przykładowe żądanie operacji wstawiania, aktualizowania i usuwania

W poniższych przykładach przedstawiono żądania wsadowe zawierające dwie operacje wstawiania jednostki i operację scalania jednostki. W tych przykładach nie interesuje nas ładunek echa w odpowiedzi na operacje wstawiania, dlatego dołączamy Prefer:``return-no-content nagłówek .

Uwaga

Format JSON jest zalecanym formatem ładunku i jest jedynym formatem obsługiwanym w wersjach 2015-12-11 i nowszych.

JSON (wersje 2013-08-15 i nowsze)

Poniższy przykład przedstawia żądanie wsadowe z ładunkiem JSON.

  
POST https://myaccount.table.core.windows.net/$batch HTTP/1.1  
x-ms-version: 2013-08-15  
Accept-Charset: UTF-8  
DataServiceVersion: 3.0;  
MaxDataServiceVersion: 3.0;NetFx  
Content-Type: multipart/mixed; boundary=batch_a1e9d677-b28b-435e-a89e-87e6a768a431  
x-ms-date: Mon, 14 Oct 2013 18:25:49 GMT  
Authorization: SharedKey myaccount:50daR38MtfezvbMdKrGJVN+8sjDSn+AaA=  
Host: 127.0.0.1:10002  
Content-Length: 1323  
Connection: Keep-Alive  
  
--batch_a1e9d677-b28b-435e-a89e-87e6a768a431  
Content-Type: multipart/mixed; boundary=changeset_8a28b620-b4bb-458c-a177-0959fb14c977  
  
--changeset_8a28b620-b4bb-458c-a177-0959fb14c977  
Content-Type: application/http  
Content-Transfer-Encoding: binary  
  
POST https://myaccount.table.core.windows.net/Blogs HTTP/1.1  
Content-Type: application/json  
Accept: application/json;odata=minimalmetadata  
Prefer: return-no-content  
DataServiceVersion: 3.0;  
  
{"PartitionKey":"Channel_19", "RowKey":"1", "Rating":9, "Text":".NET..."}  
--changeset_8a28b620-b4bb-458c-a177-0959fb14c977  
Content-Type: application/http  
Content-Transfer-Encoding: binary  
  
POST https://myaccount.table.core.windows.net/Blogs HTTP/1.1  
Content-Type: application/json  
Accept: application/json;odata=minimalmetadata  
Prefer: return-no-content  
DataServiceVersion: 3.0;  
  
{"PartitionKey":"Channel_17", "RowKey":"2", "Rating":9, "Text":"Azure..."}  
--changeset_8a28b620-b4bb-458c-a177-0959fb14c977  
Content-Type: application/http  
Content-Transfer-Encoding: binary  
  
MERGE https://myaccount.table.core.windows.net/Blogs(PartitionKey='Channel_17', RowKey='3') HTTP/1.1  
Content-Type: application/json  
Accept: application/json;odata=minimalmetadata  
DataServiceVersion: 3.0;  
  
{"PartitionKey":"Channel_19", "RowKey":"3", "Rating":9, "Text":"PDC 2008..."}  
  
--changeset_8a28b620-b4bb-458c-a177-0959fb14c977--  
--batch_a1e9d677-b28b-435e-a89e-87e6a768a431  
  
Źródło danych Atom (wersje wcześniejsze niż 2015-12-11)

W poniższym przykładzie pokazano żądanie wsadowe z ładunkiem Atom.

POST /$batch HTTP/1.1  
User-Agent: Microsoft ADO.NET Data Services  
x-ms-version: 2013-08-15  
x-ms-date: Thu, 30 Aug 2013 20:45:13 GMT  
Authorization: SharedKeyLite myaccount:asOEzsCDS7YEe6oi+bx47KMwbXL0lYZCOlR/oc3FReQ=  
Accept: application/atom+xml,application/xml  
Accept-Charset: UTF-8  
DataServiceVersion: 1.0;NetFx  
MaxDataServiceVersion: 2.0;NetFx  
Content-Type: multipart/mixed; boundary=batch_a1e9d677-b28b-435e-a89e-87e6a768a431  
Host: MyHostName:10002  
Prefer: return-no-content  
Content-Length: ###  
  
--batch_a1e9d677-b28b-435e-a89e-87e6a768a431  
Content-Type: multipart/mixed; boundary=changeset_8a28b620-b4bb-458c-a177-0959fb14c977  
  
--changeset_8a28b620-b4bb-458c-a177-0959fb14c977  
Content-Type: application/http  
Content-Transfer-Encoding: binary  
  
POST https://myaccount.table.core.windows.net/Blogs HTTP/1.1  
Content-ID: 1  
Content-Type: application/atom+xml;type=entry  
Content-Length: ###  
  
<?xml version="1.0" encoding="utf-8" standalone="yes"?>  
<entry xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="https://www.w3.org/2005/Atom">  
  <title />  
  <author>  
    <name />  
  </author>  
  <id />  
  <content type="application/xml">  
    <m:properties>  
      <d:PartitionKey>Channel_19</d:PartitionKey>  
      <d:RowKey>1</d:RowKey>  
      <d:Rating m:type="Edm.Int32">9</d:Rating>  
      <d:Text>.NET...</d:Title>  
    </m:properties>  
  </content>  
</entry>  
--changeset_8a28b620-b4bb-458c-a177-0959fb14c977  
Content-Type: application/http  
Content-Transfer-Encoding: binary  
  
POST https://myaccount.table.core.windows.net/Blogs HTTP/1.1  
Content-ID: 2  
Content-Type: application/atom+xml;type=entry  
Prefer: return-no-content  
Content-Length: ###  
  
<?xml version="1.0" encoding="utf-8" standalone="yes"?>  
<entry xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="https://www.w3.org/2005/Atom">  
  <title />  
  <author>  
    <name />  
  </author>  
  <id />  
  <content type="application/xml">  
    <m:properties>  
      <d:PartitionKey>Channel_19</d:PartitionKey>  
      <d:RowKey>2</d:RowKey>  
      <d:Rating m:type="Edm.Int32">9</d:Rating>  
      <d:Text>Azure...</d:Title>  
    </m:properties>  
  </content>  
</entry>  
--changeset_8a28b620-b4bb-458c-a177-0959fb14c977  
Content-Type: application/http  
Content-Transfer-Encoding: binary  
  
MERGE https://myaccount.table.core.windows.net/Blogs(PartitionKey='Channel_19', RowKey='3') HTTP/1.1  
Content-ID: 3  
Content-Type: application/atom+xml;type=entry  
Content-Length: ###  
  
<?xml version="1.0" encoding="utf-8" standalone="yes"?>  
<entry xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="https://www.w3.org/2005/Atom">  
  <title />  
  <author>  
    <name />  
  </author>  
  <id>https://myaccount.table.core.windows.net/Blogs(PartitionKey='Channel_19',RowKey='3')</id>  
  
  <content type="application/xml">  
    <m:properties>  
      <d:PartitionKey>Channel_19</d:PartitionKey>  
      <d:RowKey>3</d:RowKey>  
      <d:Rating m:type="Edm.Int32">9</d:Rating>  
      <d:Text>PDC 2008...</d:Title>  
    </m:properties>  
  </content>  
</entry>  
--changeset_8a28b620-b4bb-458c-a177-0959fb14c977--  
--batch_a1e9d677-b28b-435e-a89e-87e6a768a431—  
  

Przykładowe żądanie dotyczące zapytań

W poniższych przykładach przedstawiono żądanie wsadowe dla zapytania. Należy pamiętać, że w zestawie zmian może zostać uwzględnione tylko jedno zapytanie.

Uwaga

Format JSON jest zalecanym formatem ładunku i jest jedynym formatem obsługiwanym w wersjach 2015-12-11 i nowszych.

JSON (wersje 2013-08-15 i nowsze)

Poniższy przykład przedstawia żądanie wsadowe z ładunkiem JSON.

POST https://myaccount.table.core.windows.net/$batch HTTP/1.1  
x-ms-version: 2013-08-15  
Accept-Charset: UTF-8  
DataServiceVersion: 3.0;  
MaxDataServiceVersion: 3.0;NetFx  
Content-Type: multipart/mixed; boundary=batch_f351702c-c8c8-48c6-af2c-91b809c651ce  
x-ms-date: Mon, 14 Oct 2013 19:03:55 GMT  
Authorization: SharedKey testaccount1:y6TxCsXeRiR4l1KqihwRJ05Qb5zBk=  
Host: 127.0.0.1:10002  
Content-Length: 255  
Connection: Keep-Alive  
  
--batch_f351702c-c8c8-48c6-af2c-91b809c651ce  
Content-Type: application/http  
Content-Transfer-Encoding: binary  
  
GET https://myaccount.table.core.windows.net/Blogs(PartitionKey='Channel_19',RowKey='2') HTTP/1.1  
Accept: application/json;odata=minimalmetadata  
  
--batch_f351702c-c8c8-48c6-af2c-91b809c651ce  
  
Źródło danych Atom (wersje wcześniejsze niż 2015-12-11)

W poniższym przykładzie pokazano żądanie wsadowe z ładunkiem Atom.

POST /$batch HTTP/1.1  
User-Agent: Microsoft ADO.NET Data Services  
x-ms-version: 2013-08-15  
x-ms-date: Thu, 30 Aug 2013 20:45:13 GMT  
Authorization: SharedKeyLite myaccount:asOEzsCDS7YEe6oi+bx47KMwbXL0lYZCOlR/oc3FReQ=  
Accept: application/atom+xml,application/xml  
Accept-Charset: UTF-8  
DataServiceVersion: 3.0;NetFx  
MaxDataServiceVersion: 3.0;NetFx  
Content-Type: multipart/mixed; boundary=batch_f351702c-c8c8-48c6-af2c-91b809c651ce  
Content-Length: ###  
  
--batch_f351702c-c8c8-48c6-af2c-91b809c651ce  
Content-Type: application/http  
Content-Transfer-Encoding: binary  
  
GET https://myaccount.table.core.windows.net/Blogs(PartitionKey='Channel_19',RowKey='2') HTTP/1.1  
  
--batch_f351702c-c8c8-48c6-af2c-91b809c651ce—  
  

Składnia odpowiedzi usługi Batch

Odpowiedź zwraca ogólny kod stanu dla żądania wsadowego oraz poszczególne kody stanu i fragmenty wyników dla każdej operacji w zestawie zmian. Odpowiedź jest wieloetapowym komunikatem MIME, który zawiera granicę wsadową i granicę zestawu zmian.

Usługa Table Service zwraca kod stanu dla całego żądania wsadowego i co najmniej jeden kod stanu dla operacji w zestawie zmian, w zależności od tego, czy zakończyły się one powodzeniem, czy niepowodzeniem.

Przy założeniu, że żądanie wsadowe zostało prawidłowo autoryzowane i zostało pomyślnie odebrane przez usługę tabel, żądanie wsadowe zwraca kod stanu 202 (Zaakceptowane), nawet jeśli jedna z operacji w zestawie zmian zakończy się niepowodzeniem. Jeśli żądanie wsadowe zakończy się niepowodzeniem, zakończy się niepowodzeniem przed wykonaniem dowolnej operacji w zestawie zmian. Na przykład żądanie wsadowe może zakończyć się niepowodzeniem z powodu błędu autoryzacji. W takim przypadku kod stanu wskaże ten błąd.

Operacje w zestawie zmian są przetwarzane niepodzielnie; oznacza to, że wszystkie operacje w partii zakończyły się powodzeniem lub cała partia kończy się niepowodzeniem. Usługa Table Service kontynuuje przetwarzanie operacji w zestawie zmian, dopóki nie zakończy się niepowodzeniem. Jeśli operacja nie powiedzie się, wszystkie poprzednie operacje w partii zostaną wycofane. Ponadto transakcje grup jednostek są wykonywane z izolacją migawki.

Kod stanu dla poszczególnych operacji w zestawie zmian jest wyświetlany w odpowiedzi zestawu zmian. W przypadku niepowodzenia poszczególnych operacji odpowiedź dla zestawu zmian wskazuje kod stanu 400 ( Bad Request ). Dodatkowe informacje o błędzie w odpowiedzi wskazują, która operacja nie powiodła się, zwracając indeks tej operacji. Indeks jest numerem sekwencji polecenia w ładunku.

Aby uzyskać przykład, zobacz przykładową odpowiedź o błędzie poniżej.

Przykładowa odpowiedź dla operacji tworzenia, aktualizowania i usuwania

W poniższych przykładach pokazano odpowiedzi dla operacji wsadowych wysyłanych w przykładowych żądaniach pokazanych powyżej.

JSON (wersje 2013-08-15 i nowsze)

W poniższym przykładzie pokazano odpowiedź na żądanie z ładunkiem JSON.

HTTP/1.1 202 Accepted  
Cache-Control: no-cache  
Content-Type: multipart/mixed; boundary=batchresponse_e69b1c6c-62ff-471e-ab88-9a4aeef0a880  
Server: Windows-Azure-Table/1.0 Microsoft-HTTPAPI/2.0  
x-ms-request-id: ed9c96eb-9473-4fd9-abf6-fa4dcf0d6295  
x-ms-version: 2013-08-15  
X-Content-Type-Options: nosniff  
Date: Mon, 14 Oct 2013 18:25:49 GMT  
Content-Length: 1647  
  
--batchresponse_e69b1c6c-62ff-471e-ab88-9a4aeef0a880  
Content-Type: multipart/mixed; boundary=changesetresponse_a6253244-7e21-42a8-a149-479ee9e94a25  
  
--changesetresponse_a6253244-7e21-42a8-a149-479ee9e94a25  
Content-Type: application/http  
Content-Transfer-Encoding: binary  
  
HTTP/1.1 204 No Content  
Content-ID: 1  
X-Content-Type-Options: nosniff  
Cache-Control: no-cache  
Preference-Applied: return-no-content  
DataServiceVersion: 3.0;  
Location: https://myaccount.table.core.windows.net/Blogs(PartitionKey='Channel_19',RowKey='1')  
DataServiceId: https://myaccount.table.core.windows.net/Blogs (PartitionKey='Channel_19',RowKey='1')  
ETag: W/"0x8D101F7E4B662C4"  
  
--changesetresponse_a6253244-7e21-42a8-a149-479ee9e94a25  
Content-Type: application/http  
Content-Transfer-Encoding: binary  
  
HTTP/1.1 204 No Content  
Content-ID: 2  
X-Content-Type-Options: nosniff  
Cache-Control: no-cache  
Preference-Applied: return-no-content  
DataServiceVersion: 3.0;  
Location: https://myaccount.table.core.windows.net/Blogs (PartitionKey='Channel_19',RowKey='2')  
DataServiceId: https://myaccount.table.core.windows.net/Blogs (PartitionKey='Channel_19',RowKey='2')  
ETag: W/"0x8C134F7A4B692D8"  
  
--changesetresponse_a6253244-7e21-42a8-a149-479ee9e94a25  
Content-Type: application/http  
Content-Transfer-Encoding: binary  
  
HTTP/1.1 204 No Content  
Content-ID: 3  
X-Content-Type-Options: nosniff  
Cache-Control: no-cache  
DataServiceVersion: 1.0;  
ETag: W/"0x8A541B7C4D699D7"  
  
--changesetresponse_a6253244-7e21-42a8-a149-479ee9e94a25--  
--batchresponse_e69b1c6c-62ff-471e-ab88-9a4aeef0a880--  
  
Źródło danych Atom (wersje wcześniejsze niż 2015-12-11)

W poniższym przykładzie pokazano odpowiedź na żądanie z ładunkiem Atom.

HTTP/1.1 202 Accepted  
Cache-Control: no-cache  
Transfer-Encoding: chunked  
Content-Type: multipart/mixed; boundary=batchresponse_dc0fea8c-ed83-4aa8-ac9b-bf56a2d46dfb  
Server: Windows-Azure-Table/1.0 Microsoft-HTTPAPI/2.0  
x-ms-request-id: b4b49b3e-19a9-4091-a280-da76a09da8d4  
Date: Thu, 30 Aug 2013 20:44:09 GMT  
  
334  
batchresponse_dc0fea8c-ed83-4aa8-ac9b-bf56a2d46dfb   
Content-Type: multipart/mixed; boundary=--changesetresponse_8a28b620-b4bb-458c-a177-0959fb14c977  
  
--changesetresponse_8a28b620-b4bb-458c-a177-0959fb14c977  
Content-Type: application/http  
Content-Transfer-Encoding: binary  
  
HTTP/1.1 204 No Content  
Content-ID: 1  
Cache-Control: no-cache  
Preference-Applied: return-no-content  
ETag: W/"0x8D101F7E4B662C4"  
Location: https://myaccount.table.core.windows.net/Blogs(PartitionKey='Channel_19',RowKey='1')  
DataServiceVersion: 3.0;  
  
--changesetresponse_8a28b620-b4bb-458c-a177-0959fb14c977  
Content-Type: application/http  
Content-Transfer-Encoding: binary  
  
HTTP/1.1 204 No Content  
Content-ID: 2  
Cache-Control: no-cache  
Preference-Applied: return-no-content  
ETag: W/"0x8C134F7A4B692D8"  
Location: https://myaccount.table.core.windows.net/Blogs(PartitionKey='Channel_19',RowKey='2')  
DataServiceVersion: 3.0;  
  
--changesetresponse_8a28b620-b4bb-458c-a177-0959fb14c977  
Content-Type: application/http  
Content-Transfer-Encoding: binary  
  
HTTP/1.1 204 No Content  
Content-ID: 3  
Cache-Control: no-cache  
ETag: W/"0x8A541B7C4D699D7"  
DataServiceVersion: 3.0;  
  
--changesetresponse_8a28b620-b4bb-458c-a177-0959fb14c977--  
--batchresponse_4c637ba4-b2f8-40f8-8856-c2d10d163a83--  

Przykładowa odpowiedź dla zapytań

W poniższych przykładach pokazano odpowiedzi dla zapytań wysyłanych w przykładowych żądaniach pokazanych powyżej.

JSON (wersje 2013-08-15 i nowsze)

W poniższym przykładzie pokazano odpowiedź na żądanie z ładunkiem JSON.

HTTP/1.1 202 Accepted  
Cache-Control: no-cache  
Content-Type: multipart/mixed; boundary=batchresponse_0a568496-fb38-4a83-9984-5908d7f4c63d  
Server: Windows-Azure-Table/1.0 Microsoft-HTTPAPI/2.0  
x-ms-request-id: 6f2aafa3-19e9-434c-85f2-d178941c2d4b  
x-ms-version: 2013-08-15  
X-Content-Type-Options: nosniff  
Date: Mon, 14 Oct 2013 19:13:30 GMT  
Content-Length: 615  
  
--batchresponse_0a568496-fb38-4a83-9984-5908d7f4c63d  
Content-Type: application/http  
Content-Transfer-Encoding: binary  
  
HTTP/1.1 200 OK  
DataServiceVersion: 3.0;  
Content-Type: application/json;odata=minimalmetadata;streaming=true;charset=utf-8  
X-Content-Type-Options: nosniff  
Cache-Control: no-cache  
ETag: W/"0x5B168C7B6E589D2"  
  
{"odata.metadata":" https://myaccount.table.core.windows.net/Blogs/$metadata#Blogs/@Element","PartitionKey":"Channel_19","RowKey":"2","Timestamp":"2013-10-14T18:25:49.8922467Z","Rating":9,"Text":"Azure..."}  
--batchresponse_0a568496-fb38-4a83-9984-5908d7f4c63d--  
Źródło danych Atom (wersje wcześniejsze niż 2015-12-11)

W poniższym przykładzie pokazano odpowiedź na żądanie z ładunkiem Atom.

HTTP/1.1 202 Accepted  
Cache-Control: no-cache  
Transfer-Encoding: chunked  
Content-Type: multipart/mixed; boundary=batchresponse_4c637ba4-b2f8-40f8-8856-c2d10d163a83  
Server: Windows-Azure-Table/1.0 Microsoft-HTTPAPI/2.0  
x-ms-request-id: 9202c4a1-43af-4dc0-baca-aa71f7a7407b  
Date: Thu, 30 Aug 2013 20:44:10 GMT  
  
--batchresponse_4c637ba4-b2f8-40f8-8856-c2d10d163a83  
Content-Type: application/http  
Content-Transfer-Encoding: binary  
  
HTTP/1.1 200 OK  
Content-Type: application/atom+xml;charset=utf-8  
Cache-Control: no-cache  
ETag: W/"0x5B168C7B6E589D2"  
DataServiceVersion: 3.0;  
  
<?xml version="1.0" encoding="utf-8" standalone="yes"?>  
<entry xml:base="http://127.0.0.1:10002/testaccount1/" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" m:etag="W/"0x5B168C7B6E589D2"" xmlns="https://www.w3.org/2005/Atom">  
    <id> https://myaccount.table.core.windows.net/Blogs(PartitionKey='Channel_19',RowKey='1')</id>  
  <title type="text"></title>  
  <updated>2013-08-30T20:44:10Z</updated>  
  <author>  
    <name />  
  </author>  
  <link rel="edit" title="Blogs" href=" Blogs(PartitionKey='Channel_19',RowKey='2')" />  
  <category term="myaccount.Blogs" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />  
  <content type="application/xml">  
    <m:properties>  
      <d:PartitionKey>Channel_19</d:PartitionKey>  
       <d:RowKey>2</d:RowKey>  
       <d:Timestamp m:type="Edm.DateTime">2013-08-30T20:44:09.5789464Z</d:Timestamp>  
       <d:Text>.Net...</d:RowKey>  
      <d:Rating m:type="Edm.Int32">9</d:Rating>  
    </m:properties>  
  </content>  
</entry>  
--batchresponse_4c637ba4-b2f8-40f8-8856-c2d10d163a83--  
  

Przykładowa odpowiedź błędu

Poniższe przykłady pokazują odpowiedzi z żądań wsadowych zawierających operację, która zakończyła się niepowodzeniem. Należy pamiętać, że odpowiedź wsadowa zwraca kod stanu 202 (Zaakceptowano), ale pojedyncza operacja, która nie powiodła się, zwraca kod stanu 400 (Złe żądanie). Dodatkowe informacje o błędzie są zawarte w treści odpowiedzi dla operacji, która zakończyła się niepowodzeniem. Element określa kod błędu usługi magazynu, natomiast element rozpoczyna się od indeksu operacji, po której następuje code message ciąg komunikatu o błędzie. Aby ustalić, która operacja nie powiodła się, prze analizuj wartość indeksu z komunikatu. Operacje są indeksowane od zera.

Odpowiedź na błąd dla żądania w formacie JSON

W przykładzie JSON zwróć uwagę, że operacja, która zakończyła się niepowodzeniem, była pierwszą operacją w zestawie zmian. W parze nazwa/wartość komunikat rozpoczyna się od cyfry , po message której następuje rozszerzone informacje o 0 błędzie.

HTTP/1.1 202 Accepted  
Cache-Control: no-cache  
Content-Type: multipart/mixed; boundary=batchresponse_4e1c04af-af2b-4cfc-9e35-7677a5efcfca  
Server: Windows-Azure-Table/1.0 Microsoft-HTTPAPI/2.0  
x-ms-request-id: 8abd3c55-a72e-47ba-ae0b-ba43abeb76ae  
x-ms-version: 2013-08-15  
X-Content-Type-Options: nosniff  
Date: Mon, 14 Oct 2013 19:21:58 GMT  
Content-Length: 1051  
  
--batchresponse_4e1c04af-af2b-4cfc-9e35-7677a5efcfca  
Content-Type: multipart/mixed; boundary=changesetresponse_e2a26601-bba8-4c1a-8a8c-bb66badcbca1  
  
--changesetresponse_e2a26601-bba8-4c1a-8a8c-bb66badcbca1  
Content-Type: application/http  
Content-Transfer-Encoding: binary  
  
HTTP/1.1 400 Bad Request  
Content-ID: 1  
X-Content-Type-Options: nosniff  
DataServiceVersion: 3.0;  
Content-Type: application/json;odata=minimalmetadata;streaming=true;charset=utf-8  
  
{"odata.error":{"code":"OutOfRangeInput","message":{"lang":"en-US","value":"0:One of the request inputs is out of range.\nRequestId:8abd3c55-a72e-47ba-ae0b-ba43abeb76ae\nTime:2013-10-14T19:21:58.0890048Z}}}  
--changesetresponse_e2a26601-bba8-4c1a-8a8c-bb66badcbca1--  
--batchresponse_4e1c04af-af2b-4cfc-9e35-7677a5efcfca--  
  
Odpowiedź na błąd dla żądania w formacie Atom

W przykładzie atomu zwróć uwagę, że operacja, która nie powiodła się, była czwartą operacją w zestawie zmian. W elemencie komunikat rozpoczyna się od cyfry , po message której następuje rozszerzone informacje o 3 błędzie.

<message xml:lang="en-US">3:One of the request inputs is not valid.</message>  

Oto kompletna odpowiedź:

HTTP/1.1 202 Accepted  
Cache-Control: no-cache  
Transfer-Encoding: chunked  
Content-Type: multipart/mixed; boundary=batchresponse_7ab1553a-7dd6-44e7-8107-bf1ea1ab1876  
Server: Windows-Azure-Table/1.0 Microsoft-HTTPAPI/2.0  
x-ms-request-id: 45ac953e-a4a5-42ba-9b4d-97bf74a8a32e  
Date: Thu, 30 Apr 2009 20:45:13 GMT  
  
6E7  
--batchresponse_7ab1553a-7dd6-44e7-8107-bf1ea1ab1876  
Content-Type: multipart/mixed; boundary=changesetresponse_6cc856b4-8cb9-41eb-b8d2-bb73475c6cec  
  
--changesetresponse_6cc856b4-8cb9-41eb-b8d2-bb73475c6cec  
Content-Type: application/http  
Content-Transfer-Encoding: binary  
  
HTTP/1.1 400 Bad Request  
Content-ID: 4  
Content-Type: application/xml  
Cache-Control: no-cache  
DataServiceVersion: 1.0;  
  
<?xml version="1.0" encoding="utf-8" standalone="yes"?>  
<error xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">  
  <code>InvalidInput</code>  
  <message xml:lang="en-US">3:One of the request inputs is not valid.</message>  
</error>  
--changesetresponse_6cc856b4-8cb9-41eb-b8d2-bb73475c6cec--  
--batchresponse_7ab1553a-7dd6-44e7-8107-bf1ea1ab1876--  
  

Zobacz też

Specyfikacja OData
Pojęcia dotyczące usługi Table service