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

14

我想查询数据库中计算列的定义,但是找不到似乎可以实现我想要的功能的命令...

例如,如果一个列被定义为:

CallDT AS (CONVERT([datetime],dateadd(second,[StartDate],'01/01/1970'),(0)))
在DDL中,我想在数据库上运行一个命令来检索"AS"语句,以便我可以将其与预期值进行比较。(我正在开发一个SQL解析器,用于将现有数据库与DDL定义进行比较)... 这是否可行?
2个回答

27

这在 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')

12

试试这个:

SELECT
    name, definition    
FROM 
    sys.computed_columns

应该适用于 SQL Server 2005 及更高版本。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接