SQL Server查询以获取表中的列列表以及数据类型、长度、唯一性、非空、主键、外键和it';s参考

SQL Server查询以获取表中的列列表以及数据类型、长度、唯一性、非空、主键、外键和it';s参考,sql,sql-server,Sql,Sql Server,我需要一个查询来获取表中的列列表,以及数据类型、长度、非空、唯一、主键、外键及其引用 我在MySQL中使用下面的答案,但在SQL Server中需要它 我相信你需要这样的东西。如果只想查看带有外键的表,则需要将左联接更改为内联接 SELECT t.object_id , t.name TableName , C.name ColumnName , C.column_id ColumnSeq , S.name DataType

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

我在MySQL中使用下面的答案,但在SQL Server中需要它


我相信你需要这样的东西。如果只想查看带有外键的表,则需要将
左联接
更改为
内联接

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

我相信你需要这样的东西。如果只想查看带有外键的表,则需要将
左联接
更改为
内联接

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

我想你在找我

SELECT C.name ColumnName,
       OBJECT_NAME(C.object_id) TableName,
       OBJECT_NAME(FKC.referenced_object_id) ReferencedTable,
       COL_NAME(FKC.referenced_object_id, FKC.parent_column_id) ReferencedColumn,
       T.name DataType,
       C.max_length,
       C.precision,
       C.collation_name,
       C.is_nullable
       --...
FROM Sys.Columns C LEFT JOIN sys.foreign_key_columns FKC
         ON C.object_id = FKC.parent_object_id
     JOIN Sys.Types T
         ON C.system_type_id = T.system_type_id
WHERE C.object_id = OBJECT_ID('YourTableNameHere');

我想你在找我

SELECT C.name ColumnName,
       OBJECT_NAME(C.object_id) TableName,
       OBJECT_NAME(FKC.referenced_object_id) ReferencedTable,
       COL_NAME(FKC.referenced_object_id, FKC.parent_column_id) ReferencedColumn,
       T.name DataType,
       C.max_length,
       C.precision,
       C.collation_name,
       C.is_nullable
       --...
FROM Sys.Columns C LEFT JOIN sys.foreign_key_columns FKC
         ON C.object_id = FKC.parent_object_id
     JOIN Sys.Types T
         ON C.system_type_id = T.system_type_id
WHERE C.object_id = OBJECT_ID('YourTableNameHere');

Thank@Dale Burrell的可能副本,但不包括外键和它的引用这里有很多合适的内置查询-一个快速的Google查找和Thank@Dale Burrell的可能副本,但不包括外键和它的引用这里有很多合适的内置查询-一个快速的Google查找和引用