2012-03-01 6 views
0

Azureテーブルストレージには、TableServiceEntity classの3つのデフォルトメンバープロパティがあり、そのうちの1つはタイムスタンプです。 Productionにリリースした後、Timestampの代わりにCreatedDateTimeプロパティが必要であることがわかりました。Timestamp値を制御できないため、Created Dateではなく "Last Modified"値に近いように機能します。カラムデータのコピー - Azureテーブルストレージ

現在のタイムスタンプの値を新しいプロパティにコピーするにはどうすればよいですか? SQLでは、これはかなり簡単ですが、クラウドは別の動物です。ありがとう。

答えて

1

テーブルストレージにはスキーマがありません。単一の「テーブル」では、C#で定義されたPersonクラスと10行のDog Dogを10行、完全に異なるプロパティで持つことができます。

これは、スキーマがないためです。そのため、最も簡単なことは、新しい列/プロパティをクラスに追加したバッチとして行を「再挿入」することです。カラムがすでにその簡単に定義されており、uは更新を行うだけでしょう

http://blogs.msdn.com/b/windowsazurestorage/archive/2011/09/15/windows-azure-tables-introducing-upsert-and-query-projection.aspx

場合は、それ新しい列が入力された前の行に存在しないように聞こえる:あなたはまた、同様にUPSERTを行うことができます。

+0

Upsert!私はこのドキュメンテーションがそれをかなりよく綴ると思う。ありがとうございました。 – woodyiii

+0

誰かを助けるために、保存時にBatchModeを使用する場合は、Azure Table Storageの同じPartitionKeyに保存し直してください。そうしないと例外が発生します。 – woodyiii

1

クラスを使用している場合は、作成日時の新しいフィールドを追加するだけです。すべてのデータをプルダウンし、タイムスタンプを新しいフィールドにコピーし、その行でupdateを呼び出します。既に挿入や削除、そして細かい作業を行っているのであれば、かなり簡単なはずです。

+0

これはコーディングにも私が気付いたプロセスですが、私は確認と具体的なコード例を探していました。あなたは私の質問を確認し答えましたので、ありがとうございます。 – woodyiii