Udostępnij za pośrednictwem


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 Wstawianie jednostki, Aktualizowanie jednostki, Scal jednostkę, Usuwanie jednostki, Wstawianie lub Zastępowanie jednostki oraz Operacje wstawiania lub scalania jednostek są obsługiwane 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ć taką samą PartitionKey wartość.

  • Jednostka może pojawić się tylko raz w transakcji i można wykonać tylko jedną operację.

  • Transakcja może zawierać maksymalnie 100 jednostek, a jej całkowity ładunek może być większy niż 4 miB w rozmiarze.

  • Wszystkie jednostki podlegają ograniczeniom opisanym w artykule Understanding the Table Service Data Model (Opis modelu danych usługi Table Service).

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

Semantyka transakcji grupy 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 jest kontenerem operacji, w tym co najmniej jednym zestawem zmian i operacjami 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 partii. Zestaw zmian może zawierać 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 (Nieprawidłowe żądanie).

Ważne

Wiele operacji względem pojedynczej jednostki nie jest dozwolonych w zestawie zmian.

  • Należy pamiętać, że operacja kwerendy nie jest dozwolona w partii zawierającej operacje wstawiania, aktualizowania lub usuwania; Musi być przesłany śpiewająco w partii.

  • Operacje w zestawie zmian są przetwarzane niepodziealnie; oznacza to, że wszystkie operacje w zestawie zmian kończą 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 i interpretowania odpowiedzi wsadowej oraz pokazywania przykładów każdego z nich.

Składnia żądania wsadowego

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

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

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

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

Ładunek XML to wieloczęściowy komunikat MIME zawierający partię i zestaw zmian. Ładunek zawiera dwa granice MIME:

  • Granica wsadowa obejmuje zestaw zmian.

  • Granica zestawu zmian oddziela poszczególne operacje wstawiania, aktualizowania i usuwania w partii.

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

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

W poniższych przykładach przedstawiono żądania wsadowe zawierające dwie operacje wstawiania jednostek i operację scalania jednostki . W tych przykładach, ponieważ nie interesuje nas ładunek echa w odpowiedzi na operacje wstawiania, 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)

W poniższym przykładzie przedstawiono żą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  
  
Kanał informacyjny atomów (wersje wcześniejsze niż 2015-12-11)

W poniższym przykładzie przedstawiono żą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 tylko jedno zapytanie może być uwzględnione w zestawie zmian.

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)

W poniższym przykładzie przedstawiono żą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  
  
Kanał informacyjny atomów (wersje wcześniejsze niż 2015-12-11)

W poniższym przykładzie przedstawiono żą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 wsadowej

Odpowiedź zwraca ogólny kod stanu żądania wsadowego oraz poszczególne kody stanu i fragmenty wyników dla każdej operacji w zestawie zmian. Odpowiedź to wieloczęściowy komunikat MIME zawierający 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ę powodzeniem, czy niepowodzeniem.

Zakładając, że żądanie wsadowe zostało prawidłowo autoryzowane i zostało pomyślnie odebrane przez usługę Table, żądanie wsadowe zwraca kod stanu 202 (Zaakceptowane), nawet jeśli jedna z operacji w zestawie zmian zakończy się niepowodzeniem. Jeśli samo żądanie wsadowe zakończy się niepowodzeniem, nie powiedzie się, zanim zostanie wykonana jakakolwiek operacja 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 niepodziealnie; oznacza to, że wszystkie operacje w partii kończą się powodzeniem lub cała partia kończy się niepowodzeniem. Usługa Table Service kontynuuje operacje przetwarzania w zestawie zmian do momentu awarii. Jeśli operacja zakończy się niepowodzeniem, wszystkie poprzednie operacje w partii zostaną wycofane. Ponadto transakcje grup jednostek są wykonywane z izolacją migawki.

Kod stanu pojedynczej operacji w zestawie zmian jest wyświetlany w odpowiedzi zestawu zmian. Gdy pojedyncza operacja zakończy się niepowodzeniem, odpowiedź 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 zapoznać się z przykładem, zobacz przykładową odpowiedź o błędzie poniżej.

Przykładowa odpowiedź na operacje tworzenia, aktualizowania i usuwania

W poniższych przykładach przedstawiono odpowiedzi na operacje wsadowe wysyłane w przykładowych żądaniach przedstawionych powyżej.

JSON (wersje 2013-08-15 i nowsze)

W poniższym przykładzie przedstawiono odpowiedź na żądanie wykonane przy użyciu ładunku 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--  
  
Kanał informacyjny atomów (wersje wcześniejsze niż 2015-12-11)

W poniższym przykładzie przedstawiono odpowiedź na żądanie wykonane przy użyciu ładunku 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 przedstawiono odpowiedzi dla zapytań wysłanych w przykładowych żądaniach przedstawionych powyżej.

JSON (wersje 2013-08-15 i nowsze)

W poniższym przykładzie przedstawiono odpowiedź na żądanie wykonane przy użyciu ładunku 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--  
Kanał informacyjny atomów (wersje wcześniejsze niż 2015-12-11)

W poniższym przykładzie przedstawiono odpowiedź na żądanie wykonane przy użyciu ładunku 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ź na błąd

W poniższych przykładach przedstawiono 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 (Nieprawidłowe żądanie). Dodatkowe informacje o błędzie znajdują się w treści odpowiedzi dla operacji, która zakończyła się niepowodzeniem. Element code określa kod błędu usługi magazynu, podczas gdy message element rozpoczyna się od indeksu operacji, po której następuje ciąg komunikatu o błędzie. Aby określić, która operacja nie powiodła się, przeanalizuj 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 nie powiodła się, była pierwszą operacją w zestawie zmian. message W parze nazwa/wartość komunikat zaczyna się od cyfry 0, a następnie rozszerzone informacje o 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 Atom zwróć uwagę, że operacja, która nie powiodła się, była czwartą operacją w zestawie zmian. W elemecie message komunikat zaczyna się od cyfry 3, a następnie rozszerzone informacje o błędzie.

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

Oto pełna 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