SQL Server 2012中的持久性意味着什么

Har*_*hna 14 sql-server-2012

我在SQL Server中有这样的查询

Alter table inventory
Add totalitems  as iteminstore + iteminwarehouse PERSISTED`
Run Code Online (Sandbox Code Playgroud)

写这个有persisted什么好处?

mar*_*c_s 19

计算的值将持久保存到表中,就好像它是正常的列值一样.

如果没有PERSISTED,则每次访问列都会计算该值.

计算列官方MSDN文档中很好地和更广泛地记录:

坚持

指定数据库引擎将物理存储表中的计算值,并在更新计算列所依赖的任何其他列时更新值.将计算列标记为PERSISTED允许在计算列上创建索引,该索引是确定性的,但不精确.有关更多信息,请参阅计算列上的索引.用作分区表的分区列的任何计算列必须明确标记为PERSISTED.指定PERSISTED时,computed_column_expression必须是确定性的.