Sql server 2008 如何检查计算列是否持久化?

Sql server 2008 如何检查计算列是否持久化?,sql-server-2008,persistence,calculated-columns,Sql Server 2008,Persistence,Calculated Columns,如何检查计算列是否持久化?(MS SQL Server)计算列属性在sys.Computed\u列中可用 select * from sys.computed_columns where is_persisted = 1 对于要持久化的列,is_persisted=1,否则为0 您可以通过对象id将其链接回sys.tables,例如 select t.name, c.name from sys.tables t inner join sys.computed_columns c on c.ob

如何检查计算列是否持久化?(MS SQL Server)

计算列属性在sys.Computed\u列中可用

select * from sys.computed_columns where is_persisted = 1
对于要持久化的列,is_persisted=1,否则为0

您可以通过对象id将其链接回sys.tables,例如

select t.name, c.name
from sys.tables t
inner join sys.computed_columns c on c.object_id = t.object_id
where c.is_persisted = 1
并根据您的场景更改where子句以包括表名/字段名。

亡灵巫术
如果需要所有列,或者只需要计算列,或者只需要持久化计算列,则可以使用一个脚本:

SELECT * 
FROM sys.columns AS sysc

LEFT JOIN sys.computed_columns AS syscc 
    ON syscc.object_id = sysc.object_id 
    AND syscc.name = sysc.name 

WHERE (1=1) 
AND sysc.is_computed = 1 -- optional 
AND is_persisted = 1  -- optional 

有点关联,不是直接的。好书: