【发布时间】:2019-07-24 09:48:23
【问题描述】:
我需要像这样获取数据库结果中所有列、表的约束:
DatabaseName | SchemaName | TableName | ColumnName | ColumnType | ConstraintName |
-
ConstraintType | Definition | CreateDate
我已经使用了这个answer,但它只显示了 TableName、ColumnName、ConstraintName 和定义。
我使用的答案:
SELECT
TableName = t.Name,
ColumnName = c.Name,
dc.Name,
dc.definition
FROM sys.tables t
INNER JOIN sys.default_constraints dc ON t.object_id = dc.parent_object_id
INNER JOIN sys.columns c ON dc.parent_object_id = c.object_id AND c.column_id = dc.parent_column_id
ORDER BY t.Name
感谢您的帮助。
【问题讨论】:
-
那么是什么阻止您将这些额外的列添加到您的查询中?例如,
sys.columns有一个列system_type_id和user_type_id,还有一个名为sys.types和sys.systypes的对象也就不足为奇了。 -
@Larnu 我想要那些列的默认约束和检查约束我有问题到达那些。
标签: sql sql-server tsql select