SQLServer sys.default_constraints介绍

   sys.default_constraints 是 SQL Server 的系统视图,它包含了数据库中所有默认约束的信息。默认约束是数据库对象(如表中的列)的约束,它为列定义了一个默认值,当在插入新行时没有为该列提供值时,将使用这个默认值。

   sys.default_constraints 视图提供了关于这些默认约束的详细信息,如约束的名称、所属的表、约束的列、默认值等。

    以下是在 sys.default_constraints 视图中的内容:

  • name: 默认约束的名称。
  • object_id: 默认约束的对象ID。
  • parent_object_id: 包含此默认约束的表的对象ID。
  • parent_column_id: 约束所应用的列的ID。
  • definition: 约束的默认值或表达式。
  • is_ms_shipped: 指示是否是由系统生成的约束。
  • is_disabled: 指示约束是否已被禁用。

     示例:首先,我们创建一个新表,并给其中的某些列设置默认值:

CREATE TABLE ExampleTable (  
    ID INT PRIMARY KEY IDENTITY(1,1),  
    Name NVARCHAR(100) NOT NULL,  
    Age INT DEFAULT 25,  
    IsActive BIT DEFAULT 1,  
    CreatedDate DATETIME DEFAULT GETDATE()  
);

       现在,假设我们想要查询这个新表的列及其默认值,我们可以用 sys.default_constraints 和其他系统视图:

SELECT   
    c.name AS column_name,  
    t.name AS table_name,  
    dc.definition AS default_value  
FROM   
    sys.columns c  
LEFT JOIN   
    sys.default_constraints dc ON c.default_object_id = dc.object_id  
INNER JOIN   
    sys.tables t ON c.object_id = t.object_id  
WHERE   
    t.name = 'ExampleTable' AND  
    dc.parent_column_id = c.column_id;

       结果:

SQLServer sys.default_constraints介绍_第1张图片

你可能感兴趣的:(sqlserver,数据库)