作为默认定义且 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'