다음을 통해 공유


엔터티 그룹 트랜잭션 수행

Table service는 동일한 테이블에 있고 동일한 파티션 그룹에 속한 엔터티에 대한 일괄 처리 트랜잭션을 지원합니다. 여러 엔터티 삽입, 엔터티 업데이트, 엔터티 병합, 엔터티 삭제, 엔터티 삽입 또는 바꾸기엔터티 삽입 또는 병합 작업은 단일 트랜잭션 내에서 지원됩니다.

엔터티 그룹 트랜잭션에 대한 요구 사항

엔터티 그룹 트랜잭션은 다음 요구 사항을 충족해야 합니다.

  • 트랜잭션의 일부 작업에 해당하는 모든 엔터티는 동일한 PartitionKey 값을 가져야 합니다.

  • 엔터티는 트랜잭션에 한 번만 나타날 수 있으며, 이에 대해 하나의 작업만 수행할 수 있습니다.

  • 트랜잭션에는 최대 100개의 엔터티가 포함될 수 있으며 총 페이로드의 크기는 4MiB 이하일 수 있습니다.

  • 모든 엔터티에는 Table Service 데이터 모델 이해에 설명된 제한 사항이 적용됩니다.

OData 일괄 처리 요청에 대한 테이블 서비스 지원

엔터티 그룹 트랜잭션에 대한 의미 체계는 OData 프로토콜 사양에 의해 정의됩니다. OData 사양에는 일괄 처리 요청에 대해 다음과 같은 개념들이 정의되어 있습니다.

  • 변경 집합은 하나 이상의 삽입, 업데이트 또는 삭제 작업의 그룹입니다.

  • 일괄 처리는 하나 이상의 변경 집합 및 쿼리 작업을 포함하는 작업들의 컨테이너입니다.

Table service는 OData 사양에 정의된 기능들의 하위 집합을 지원합니다.

  • 테이블 서비스는 하나의 일괄 처리 안에 단일 변경 집합만 지원합니다. 변경 집합은 여러 개의 삽입, 업데이트 및 삭제 작업을 포함할 수 있습니다. 일괄 처리에 변경 집합이 2개 이상 포함된 경우 첫 번째 변경 집합이 서비스에서 처리되고 추가 변경 집합은 상태 코드 400(잘못된 요청)과 함께 거부됩니다.

중요

단일 엔터티에 대한 다중 작업은 변경 집합 내에서 허용되지 않습니다.

  • 삽입, 업데이트 또는 삭제 작업이 포함된 일괄 처리 내에서는 쿼리 작업이 허용되지 않으며, 일괄 처리에 단일 항목으로 제출되어야 합니다.

  • 변경 집합 내의 작업은 원자성으로 처리됩니다. 즉, 변경 집합 내의 모든 작업이 성공하거나 실패합니다. 작업은 변경 집합에 지정된 순서로 처리됩니다.

  • 테이블 서비스에서 변경 집합 내의 작업 연결은 지원되지 않습니다.

  • 테이블 서비스에서는 변경 집합에서 최대 100개의 작업이 지원됩니다.

REST를 통한 엔터티 그룹 트랜잭션

다음 섹션에서는 일괄 처리 요청을 생성하고 일괄 처리 응답을 해석하는 방법 및 이러한 각 방법에 대한 예제를 보여줍니다.

일괄 처리 요청 구문

REST를 통해 일괄 처리 요청을 수행하려면 요청 URI에 옵션을 지정 $batch 합니다. 예를 들면 다음과 같습니다.

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

요청 URI는 테이블 이름을 포함하지 않습니다.

일괄 처리 요청은 단일 POST 지시문을 사용해서 서버에 전달됩니다. 이 요청에는 x-ms-version 헤더가 포함되어야 하며, 헤더 값은 2009-04-14 이상으로 설정되어야 합니다.

XML 페이로드는 일괄 처리 및 변경 집합을 포함하는 다중 파트 MIME 메시지입니다. 페이로드에는 2개의 MIME 경계가 포함됩니다.

  • 변경 집합은 일괄 처리 경계에 포함됩니다.

  • 일괄 처리 경계에 따라 일괄 처리의 개별 삽입, 업데이트 및 삭제 작업이 구분됩니다.

변경 집합 내의 개별 요청은 그 자체로 호출 중인 작업에서 수행된 요청과 동일합니다. 예를 들면 다음과 같습니다.

  • 업데이트, 병합 또는 삭제 작업에서 If-Match 헤더를 지정하려면 변경 집합의 적합한 작업에 대한 요청 헤더 집합에 헤더를 포함합니다.

  • 변경 집합의 각 작업에 대해 페이로드 형식(JSON 또는 ATOM)을 지정하려면 테이블 서비스 작업에 대한 페이로드 형식의 세부 정보에 설명된 대로 적절한 Content-Type, AcceptVersionDataServiceVersion 헤더를 포함합니다.

  • 엔터티 삽입에 대한 응답 콘텐츠 에코를 표시하지 않하려면 변경 집합의 Prefer 각 삽입 작업에 대한 값을 사용하여 return-no-content 헤더를 지정합니다. 헤더에 Prefer 대한 자세한 내용은 테이블 서비스 기능 요약을 참조하세요.

삽입, 업데이트 및 삭제 작업에 대한 예제 요청

다음 예제에서는 엔 터티 삽입 작업 2개와 엔터티 병합 작업을 포함하는 일괄 처리 요청을 보여 줍니다. 이러한 예제에서는 삽입 작업에 대한 응답에서 에코 페이로드에 관심이 없으므로 헤더를 Prefer:``return-no-content 포함합니다.

참고

JSON은 권장 페이로드 형식이며 버전 2015-12-11 이상에서 지원되는 유일한 형식입니다.

JSON(버전 2013-08-15 이상)

다음 예제에서는 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  
  
Atom 피드(2015-12-11 이전 버전)

다음 예제에서는 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—  
  

예제 쿼리 요청

다음 예에서는 쿼리에 대한 일괄 처리 요청을 보여 줍니다. 변경 집합에는 단일 쿼리만 포함할 수 있습니다.

참고

JSON은 권장 페이로드 형식이며 버전 2015-12-11 이상에서 지원되는 유일한 형식입니다.

JSON(버전 2013-08-15 이상)

다음 예제에서는 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  
  
Atom 피드(2015-12-11 이전 버전)

다음 예제에서는 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—  
  

일괄 처리 응답 구문

응답은 일괄 처리 요청에 대한 전반적인 상태 코드, 변경 집합의 각 작업에 대한 개별 상태 코드 및 결과 조각을 반환합니다. 응답은 일괄 처리 경계 및 변경 집합 경계를 포함하는 다중 파트 MIME 메시지입니다.

테이블 서비스는 전체 일괄 처리 요청에 대한 상태 코드, 변경 집합의 각 작업에 대한 하나 이상의 상태 코드(성공 또는 실패 여부에 따라 다름)를 반환합니다.

일괄 처리 요청이 올바르게 승인되었고 Table Service에서 성공적으로 수신되었다고 가정하면 변경 집합의 작업 중 하나가 실패하더라도 일괄 처리 요청은 코드 202(수락됨)상태 반환합니다. 일괄 처리 요청 자체가 실패하면 변경 집합의 다른 작업이 실행되기 전에 실패합니다. 예를 들어 권한 부여 오류로 인해 일괄 처리 요청이 실패할 수 있습니다. 이 경우 상태 코드는 해당 오류를 나타냅니다.

변경 집합 내의 작업은 원자성으로 처리됩니다. 즉, 일괄 처리의 모든 작업이 성공하거나 전체 일괄 처리가 실패합니다. 테이블 서비스는 실패하는 작업이 있을 때까지 변경 집합의 작업 처리를 계속 수행합니다. 작업이 실패하면 일괄 처리에서 앞에서 수행된 모든 작업이 롤백됩니다. 또한 스냅숏 격리를 사용해서 엔터티 그룹 트랜잭션이 실행됩니다.

변경 집합 내의 개별 작업에 대한 상태 코드는 변경 집합 응답 내에 표시됩니다. 개별 작업이 실패하면 변경 집합에 대한 응답에 상태 코드 400(Bad Request)이 나타납니다. 응답 내의 추가 오류 정보에는 해당 작업의 인덱스를 반환하여 실패한 작업이 표시됩니다. 인덱스는 페이로드에서 해당 명령의 시퀀스 번호입니다.

예를 들어 아래 예제 오류 응답을 참조하세요.

만들기, 업데이트 및 삭제 작업에 대한 예제 응답

다음 예에서는 위에 표시된 예제 요청으로 전송된 일괄 처리 작업에 대한 응답을 보여 줍니다.

JSON(버전 2013-08-15 이상)

다음 예제에서는 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--  
  
Atom 피드(2015-12-11 이전 버전)

다음 예제에서는 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--  

예제 쿼리 응답

다음 예에서는 위에 표시된 예제 요청으로 전송된 쿼리에 대한 응답을 보여 줍니다.

JSON(버전 2013-08-15 이상)

다음 예제에서는 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--  
Atom 피드(2015-12-11 이전 버전)

다음 예제에서는 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--  
  

샘플 오류 응답

다음 예에서는 실패한 작업이 포함된 일괄 처리 요청의 응답을 보여 줍니다. 일괄 처리 응답이 상태 코드 202(수락)를 반환하지만 실패한 개별 작업은 상태 코드 400(잘못된 요청)을 반환합니다. 추가 오류 정보는 실패한 작업의 응답 본문에 포함됩니다. code 요소는 저장소 서비스 오류 코드를 지정하지만 message 요소는 실패한 작업의 인덱스로 시작하여 오류 메시지 문자열이 표시됩니다. 실패한 작업을 확인하려면 메시지에서 인덱스 값을 구문 분석합니다. 작업은 0부터 시작해서 인덱싱됩니다.

JSON 형식의 요청에 대한 오류 응답

JSON 예에서 실패한 작업은 변경 집합에서 첫 번째 작업입니다. message 이름/값 쌍 내에서 메시지는 숫자 0으로 시작하고 자세한 오류 정보가 표시됩니다.

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--  
  
Atom 형식의 요청에 대한 오류 응답

Atom 예에서 실패한 작업은 변경 집합에서 네 번째 작업입니다. message 요소 내에서 메시지는 숫자 3으로 시작하고 자세한 오류 정보가 표시됩니다.

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

전체 응답은 다음과 같습니다.

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--  
  

참고 항목

OData 사양
테이블 서비스 개념