2012-03-01 155 views
0

因此Azure的表存储有其TableServiceEntity class三个默认的成员属性,其中之一是时间戳。在发布到Production之后,我们现在意识到我们需要一个CreatedDateTime属性而不是Timestamp b/c,我们无法控制Timestamp值,它更像是“上次修改”值而非“创建日期”值。复制列数据 - Azure的表存储

我怎么能目前超过复制时间戳值到我的新的财产?在SQL中,这看起来很简单,但云是不同的动物。谢谢。

回答

1

在Table Storage中,您没有模式。在一个单独的“表格”中,您可以使用C#定义的Person类的10行和具有完全不同属性的10行的Dog类。

我之所以这样说,是因为没有模式,所以最容易做的事情将是“重新插入”的行与新列/属性批量添加到类。你也可以做一个UPSERT还有:

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

如果列已经被定义,那么它很容易和u只想做一个更新,但它听起来像是新列不上输入以前的行存在。

+0

Upsert!我认为这个文档很好地阐述了它。谢谢。 – woodyiii 2012-03-02 20:15:15

+0

为了帮助其他人,如果您在保存时决定使用BatchMode,那么只需确保您保存到Azure表存储中的同一个PartitionKey,否则您将得到一个异常。 – woodyiii 2012-05-02 13:53:02

1

如果您正在使用一个类,只需添加新的字段创建日期时间。拉下所有数据并将时间戳复制到新字段,然后在该行上调用更新。如果你已经在做插入和删除和thigns,应该是非常简单的。

+0

这也是我编写它的过程,但我一直在寻找确认和具体代码示例。你们都证实并回答了我的问题,所以谢谢。 – woodyiii 2012-03-02 20:18:53