Как проверить, сохраняется ли вычисляемый столбец? - PullRequest
5 голосов
/ 11 марта 2011

Как проверить, сохраняется ли вычисляемый столбец? (MS SQL Server)

Ответы [ 2 ]

10 голосов
/ 11 марта 2011

Атрибуты вычисляемых столбцов доступны в sys.computed_columns.

select * from sys.computed_columns where is_persisted = 1

is_persisted = 1 для сохраняемого столбца, в противном случае 0.

Вы можете связать это обратно с sys.tables через object_id, например,

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, чтобы включить имя таблицы / имя поля в соответствии с вашим сценарием.

0 голосов
/ 26 сентября 2018

Necromancing.Если вам нужны все столбцы, или только вычисляемые столбцы, или только сохраненные вычисленные столбцы, вы можете сделать это одним скриптом:

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 
...