sys.default_constraints

作为默认定义且 sys.objects.type = D 的每个对象在表中各对应一行,

该默认定义是作为 CREATE TABLE 或 ALTER TABLE 语句的一部分创建的,

而不是作为 CREATE DEFAULT 语句的一部分创建的。(CREATE DEFAULT这种语法在SQL Server的后续版本中将会被删除

1、根据指定的表,查询所有DEFAULT约束

SELECT  *
FROM    sys.default_constraints
WHERE   parent_object_id = OBJECT_ID(N'[Production].[Product]', N'U')

2、根据指定的表指定的列,查询DEFAULT约束

SELECT  *
FROM    ( SELECT    *
          FROM      sys.default_constraints
          WHERE     parent_object_id = OBJECT_ID('[Production].[Product]')
        ) d -- constraints
        JOIN ( SELECT   *
               FROM     sys.columns
               WHERE    object_id = OBJECT_ID('[Production].[Product]')
             ) c -- columns
        ON d.parent_column_id = c.column_id
WHERE   c.name = 'ModifiedDate'

注:使用Join关联时,尽可能用两个表的主键关联,否则很容易出现意外结果。

或者

SELECT  *
FROM    sys.default_constraints d
        JOIN sys.columns c ON d.parent_object_id = c.object_id
                              AND d.parent_column_id = c.column_id
WHERE   parent_object_id = OBJECT_ID('[Production].[Product]')
        AND c.name = 'ModifiedDate'

sys.default_constraints (Transact-SQL)

原文地址:https://www.cnblogs.com/niaomingjian/p/4658758.html