sys.default_constraints

本文提供 SQL Server 中查询指定表的所有 DEFAULT 约束及指定表和列的特定 DEFAULT 约束的方法,通过系统视图 sys.default_constraints 和 sys.columns 进行关联查询。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值