一尘不染

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

sql

我想从数据库中查询计算列的定义,但是找不到似乎可以执行我想要的命令的命令…

例如,如果某列定义为:

CallDT AS (CONVERT([datetime],dateadd(second,[StartDate],'01/01/1970'),(0)))

在DDL中,我想在数据库上运行命令以检索该“
AS”语句,以便可以将其与其期望值进行比较。(我正在开发一个SQL解析器,它将现有数据库与DDL定义进行比较)…

这可能吗?


阅读 124

收藏
2021-05-16

共1个答案

一尘不染

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