Sql server 2016新功能:时态表
术语“时态数据”是指那些在数据库中有版本的记录。任何给定的逻辑记录都有一个当前版本和零个或多个先前版本。当前版本和任意先前版本在数据库中都以物理行的形式存在,虽然未必在同一张表中。
使用时态表时要努力保证数据完整性。每次更新一个行,都需要有一种方法可以确保行的当前版本复制到存储先前版本的表中。这可以通过触发器或存储过程实现,但两种方法都有各自的问题。
同样,查询时态数据也是个挑战。虽然开发人员很容易获取一条逻辑记录的当前版本,但查询特定数据的版本,需要一个复杂而又容易出错的查询。这经常导致开发人员寄希望于专门为这种负载类型而设计的数据库。
SQL Server 2016提供了另外一种选择——新的时态表对象。表面上看,时态表看起来跟普通表一样。它支持大多数列类型、普通索引、列存储索引、外键等等。CRUD类的操作同使用普通SQL或对象关系映射一样。实际上,大多数普通表都可以转换成时态表,而不需要修改使用上述表的存储过程和应用程序。
从实现上来说,时态表实际上是两张表。一张表包含当前值,另一张表管理数据的历史版本。两张表链接在一起,普通表的任何UPDATE或DELETE操作都会自动创建一个相应的历史行。
想要了解更多,请关注下方平台>>
新浪微博:@享和邑正版软件商城
公众微信:享和邑
热门推荐: