SQL Server查询以获取表中的列列表以及数据类型、长度、唯一性、非空、主键、外键和it';s参考
我需要一个查询来获取表中的列列表,以及数据类型、长度、非空、唯一、主键、外键及其引用 我在MySQL中使用下面的答案,但在SQL Server中需要它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
我相信你需要这样的东西。如果只想查看带有外键的表,则需要将
左联接
更改为内联接
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查找和引用