Ang*_*ker 4 sql t-sql sql-server sql-server-2017
我的表格包含calcIncome计算列:
CREATE TABLE foo
(
id int,
name varchar(100),
[other columns],
calcIncome AS dbo.fn_calcIncome() PERSISTED NOT NULL
)
Run Code Online (Sandbox Code Playgroud)
询问:
select *
from foo
where calcIncome > 100
Run Code Online (Sandbox Code Playgroud)
即使我设置calcIncome为PERSISTED,此查询仍然需要fn_calcIncome每一行。
PERSISTED那么,如果计算列的行为与非持久计算列相同,那么设置计算列的目的到底是什么?