首页 > 解决方案 > SQL Server 查询以获取表中的列列表以及数据类型、长度、唯一性、非空值、主键、外键及其引用

问题描述

我需要一个查询来获取表中的列列表以及数据类型、长度、非空、唯一、主键、外键及其引用。

我将以下答案与 MySQL 一起使用,但我在 SQL Server 中需要它。

显示具有键类型和引用的 MYSQL 表列

标签: sqlsql-server

解决方案


我相信你需要这样的东西。如果您只想查看带有外键的表,您需要更改LEFT JOININNER JOIN.

SELECT    t.object_id
        , t.name TableName
        , C.name ColumnName
        , C.column_id ColumnSeq
        , S.name DataType
        , tf.name ParentTableName
        , CF.name ParentColumnName
FROM sys.tables T
INNER JOIN sys.columns C ON T.object_id = C.object_id
INNER JOIN sys.types S ON C.system_type_id = S.system_type_id
LEFT JOIN sys.foreign_key_columns FSK ON FSK.parent_object_id = t.object_id  AND FSK.parent_column_id = C.column_id
LEFT JOIN SYS.columns CF ON FSK.referenced_object_id = CF.object_id AND FSK.referenced_column_id = CF.column_id
LEFT JOIN SYS.tables TF ON cf.object_id = TF.object_id

推荐阅读