如果我们在sql server数据库中定义了很多的默认值,那么我们要如何查看所有默认值的定义呢?一个一个的表打开,去查看字段,显然不是好的方法,本章我们了解一下如何利用sql查询出sql server中所有的默认值。
该方法需要使用目录视图
sys.default_constraints,该视图中存储了数据库中我们定义的所有的默认值。
我们可以先利用下面的sql了解一下sys.default_constraints的所有字段
select * from sys.default_constraints
下面讲解一下该视图的重点列的意思:
1,name--该默认值的约束名
2,object_id--该默认值的约束ID
3,parent_object_id--该默认值所属的表ID
4,create_date--该默认值的创建时间
5,modify_date--该默认值的最后一次修改时间
6,definition--该默认值的定义
7,is_system_named--该默认值的名字是不是由系统产生的。值等于1的时候代表名称由系统生成,值等于0的时候代表名称由用户提供。
结合object_name函数与sys.columns视图,我们可以查询出默认值所属的表名与所附加其上的列名。sql语句如下:
select a.name,object_name(a.parent_object_id) as 所属表名,
a.definition,a.is_system_named,b.name as 列名
from sys.default_constraints a left join sys.columns b on
a.parent_object_id=b.object_id and b.column_id=a.parent_column_id
e