このページは役に立ちましたか。
このページのコンテンツについての ご意見をお待ちしております
その他にご意見はありますか。
残り 1500 文字
エクスポート (0) 印刷
すべて展開

Merge Entity

更新日: 2015年4月

Merge Entity 操作は、エンティティのプロパティを更新することで既存のエンティティを更新します。この操作は、Update Entity 操作のように既存のエンティティを置換することはしません。

Merge Entity 要求の構成は次のとおりです。HTTPS が推奨されます。myaccount をストレージ アカウントの名前、mytable をテーブルの名前、myPartitionKey および myRowKey を更新対象のエンティティを識別するパーティション キーと行キーの名前に置き換えます。

 

メソッド 要求 URI HTTP バージョン

MERGE

https://myaccount.table.core.windows.net/mytable(PartitionKey='myPartitionKey', RowKey='myRowKey')

HTTP/1.1

更新対象のエンティティのアドレスは、要求の URI でいくつかの形式をとります。詳細については、「OData プロトコル」を参照してください。

エミューレートされたストレージ サービスに対する要求では、エミュレーターのホスト名とテーブル サービス ポートを 127.0.0.1:10002 と指定し、その後にエミューレートされたストレージ アカウント名を指定します。

 

メソッド 要求 URI HTTP バージョン

MERGE

http://127.0.0.1:10002/devstoreaccount1/mytable(PartitionKey='myPartitionKey', RowKey='myRowKey')

HTTP/1.1

ストレージ エミュレーターのテーブル サービスは、Windows® Azure™ のテーブル サービスとはいくつかの点で異なります。詳細については、「Differences between Development Storage and Cloud Storage Services」を参照してください。

ありません。

必須要求ヘッダーと省略可能な要求ヘッダーを次の表に示します。

 

要求ヘッダー 説明

Authorization

必須。認証スキーム、アカウント名、および署名を指定します。詳細については、「Azure ストレージ サービスの認証」を参照してください。

Date またはx-ms-date

必須。要求の世界協定時刻 (UTC) を指定します。詳細については、「Azure ストレージ サービスの認証」を参照してください。

x-ms-version

省略可能。この要求に使用する操作のバージョンを指定します。詳細については、「Windows Azure の BLOB サービス、キュー サービス、およびテーブル サービスのバージョン管理」を参照してください。

Content-Type

必須。ペイロードのコンテンツの種類を指定します。指定できる値は application/atom+xml および application/json です。

有効なコンテンツの種類の詳細については、「テーブル サービス操作のペイロード形式」を参照してください。

Content-Length

必須。要求本文の長さ。

If-Match

必須。クライアントでは、オプティミスティック同時実行を目的としてサービスによって維持される ETag と比較するために、要求でエンティティの ETag を指定する場合があります。更新操作は、クライアントから送信された ETag がサーバーで維持される値と一致した場合にのみ実行されます。これは、エンティティがクライアントで取得されてから変更されていないことを示します。

無条件更新を強制するには、If-Match をワイルドカード文字 (*) に設定します。

x-ms-client-request-id

省略可能。Storage Analytics Logging が有効な場合に解析ログに記録される、クライアントで生成された非透過の値を 1 KB の文字制限付きで提供します。クライアント側のアクティビティとサーバーが受け取る要求を相互に関連付けるには、このヘッダーを使用することを強くお勧めします。詳細については、「Storage Analytics Logging について」および「Azure のログ:ログを使用した、ストレージ要求の追跡」を参照してください。

Merge Entity 操作は、更新するエンティティを OData エンティティ (JSON または Atom フィード) として送信します。詳細については、「エンティティの挿入と更新」を参照してください。

応答には、HTTP 状態コードおよび一連の応答ヘッダーが含まれています。

操作が正常に終了すると、ステータス コード 204 (No Content) が返されます。

ステータス コードの詳細については、「ステータス コードとエラー コード」および「テーブル サービスのエラー コード」を参照してください。

この操作の応答には、次のヘッダーが含まれています。応答に追加の標準 HTTP ヘッダーが含まれる場合もあります。標準ヘッダーはすべて、HTTP/1.1 プロトコル仕様に準拠しています。

 

応答ヘッダー 説明

ETag

エンティティの ETag。

x-ms-request-id

このヘッダーは要求を一意に識別するので、要求のトラブルシューティングに使用できます。詳細については、「API 操作のトラブルシューティング」を参照してください。

x-ms-version

要求の実行に使用するテーブル サービスのバージョンを示します。このヘッダーはバージョン 2009-09-19 以降で行った要求に対して返されます。

Date

サービスによって生成される、応答の開始時刻を示す UTC 日付/時刻値。

ありません。

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

この操作を実行できるのは、アカウント所有者と、この操作を実行するアクセス許可を持つ共有アクセス署名を使用する任意のユーザーです。

値が null のプロパティは、Merge Entity 操作では無視されます。その他すべてのプロパティは更新されます。

プロパティは、Merge Entity 操作で削除できません。エンティティからプロパティを削除するには、Update Entity 操作を呼び出してエンティティを置換します。

エンティティをマージする場合は、PartitionKey システム プロパティと RowKey システム プロパティをマージ操作の一部として指定する必要があります。

エンティティの ETag は、マージ操作の既定のオプティミスティック同時実行制御を提供します。ETag 値は非透過的であり、この値の読み取りまたはこの値への応答はできません。マージ操作が行われる前に、テーブル サービスは、エンティティの現在の ETag 値が If-Match ヘッダーの要求に含まれる ETag 値と同一であることを確認します。値が同一の場合、テーブル サービスはエンティティが取得後に変更されていないことを確認し、マージ操作が続行されます。

エンティティの ETag がマージ要求で指定された ETag と異なる場合、マージ操作はステータス コード 412 (Precondition Failed) で失敗します。このエラーは、取得後にサーバーでエンティティが変更されたことを示します。このエラーを解決するには、エンティティを再度取得し、要求を再発行します。

無条件マージ操作を強制するには、要求で If-Match ヘッダーの値をワイルドカード文字 (*) に設定します。この値を操作に渡すと、既定のオプティミスティック同時実行制御がオーバーライドされ、ETag 値の不一致が無視されます。

If-Match ヘッダーが要求にない場合、サービスはステータス コード 400 (Bad Request) を返します。他の点で形式が正しくない要求も 400 を返します。詳細については、「テーブル サービスのエラー コード」を参照してください。

HTTP MERGE 要求を認証および送信できるアプリケーションは、エンティティをマージできます。HTTP MERGE を使用したクエリの作成方法の詳細については、「方法:エンティティを追加、変更、および削除する」を参照してください。

バッチ マージ操作の実行方法については、「エンティティ グループ トランザクションの実行」を参���してください。

関連項目

表示:
© 2015 Microsoft