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

时间:2011-02-18 22:06:32

标签: sql sql-server database calculated-columns

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

例如,如果列定义为:

CallDT AS (CONVERT([datetime],dateadd(second,[StartDate],'01/01/1970'),(0)))
在DDL中,我想在数据库上运行一个命令来检索“AS”语句,这样我就可以将它与预期值进行比较。 (我正在开发一个SQL解析器,它将现有数据库与DDL定义进行比较)...

这可能吗?

2 个答案:

答案 0 :(得分:18)

这适用于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')

答案 1 :(得分:7)

试试这个:

SELECT
    name, definition    
FROM 
    sys.computed_columns

应该在SQL Server 2005及更高版本中运行。