如何检查列默认约束是否存在

本文关键字:默认 约束 是否 存在 何检查 检查 | 更新日期: 2023-09-27 17:51:08

我想检查列已经有默认约束或不只有表名和列名数据。有了这个记录计数,我们就可以创建约束了。

我们是否有任何其他属性来检查数据集中该列的约束是否存在?

如何检查列默认约束是否存在

查询

select COLUMN_DEFAULT 
from INFORMATION_SCHEMA.COLUMNS
where TABLE_NAME = @tableName
and COLUMN_NAME = @columnName

将返回为列指定的默认值(如果没有定义默认值,则为null)


更新:

下面的查询也将检索约束的名称:

select 
    dc.name,
    dc.definition
from sys.default_constraints dc
join sys.objects o
    on o.object_id = dc.parent_object_id
join sys.columns c
    on o.object_id = c.object_id
    and c.column_id = dc.parent_column_id
where o.name = @tableName
and c.name = @columnName

如果没有返回任何行,则没有在列上定义默认约束。