SQL Server:可从数据库中检索的计算列定义?

Rim*_*mer 11 sql database sql-server calculated-columns

我想从数据库查询计算列的定义,但找不到似乎做我想要的命令...

例如,如果列定义为:

CallDT AS (CONVERT([datetime],dateadd(second,[StartDate],'01/01/1970'),(0)))
Run Code Online (Sandbox Code Playgroud)

在DDL中,我想在数据库上运行一个命令来检索"AS"语句,以便将其与预期值进行比较.(我正在开发一个将现有数据库与DDL定义进行比较的SQL解析器)...

这可能吗?

Mar*_*ith 23

这适用于SQL Server 2008

create table dbo.Foo
(
StartDate int,
CallDT AS (CONVERT([datetime],dateadd(second,[StartDate],'01/01/1970'),(0)))
)

select definition 
from sys.computed_columns 
where name='CallDT' and object_id=object_id('dbo.Foo')
Run Code Online (Sandbox Code Playgroud)


mar*_*c_s 10

试试这个:

SELECT
    name, definition    
FROM 
    sys.computed_columns
Run Code Online (Sandbox Code Playgroud)

应该在SQL Server 2005和更新版本中工作.