我在SQL Server中有这样的查询
Alter table inventory
Add totalitems as iteminstore + iteminwarehouse PERSISTED`
撰写persisted
的优势是什么?
答案 0 :(得分:16)
计算出的值持久到表中,就像它是正常的列值一样。
如果您没有PERSISTED
,则每次访问该列时都会计算值。
在official MSDN documentation for computed columns中很好地和更广泛地记录:
<强> PERSISTED 强>
指定数据库引擎将物理存储表中的计算值,并在更新计算列所依赖的任何其他列时更新值。将计算列标记为PERSISTED允许在计算列上创建索引,该索引是确定性的,但不精确。有关更多信息,请参阅计算列上的索引。用作分区表的分区列的任何计算列必须明确标记为PERSISTED。指定PERSISTED时,computed_column_expression必须是确定性的。