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

时间:2015-03-11 16:11:35

标签: sql-server-2012

我在SQL Server中有这样的查询

Alter table inventory
Add totalitems  as iteminstore + iteminwarehouse PERSISTED`

撰写persisted的优势是什么?

1 个答案:

答案 0 :(得分:16)

计算出的值持久到表中,就像它是正常的列值一样。

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

official MSDN documentation for computed columns中很好地和更广泛地记录:

  

<强> PERSISTED

     

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