获取所有表的列和类型

时间:2013-07-31 16:54:50

标签: sql-server

我需要从sys.columns获取所有表名和列类型。我试过这个:

SELECT OBJECT_ID 
FROM   sys.COLUMNS 

但是OBJECT_ID给出了值而不是确切的名称。

2 个答案:

答案 0 :(得分:1)

您可以使用object_name()函数从给定的object_id获取对象的名称。

您可以加入sys.types视图以获取类型名称:

select c.object_id, object_name(c.object_id), c.name, t.name from sys.columns c
join sys.types t on t.system_type_id = c.system_type_id;

答案 1 :(得分:1)

试试这个我希望它可以提供帮助

SELECT t.name AS table_name,
SCHEMA_NAME(schema_id) AS schema_name,
c.name AS column_name
FROM sys.tables AS t
INNER JOIN sys.columns c ON t.OBJECT_ID = c.OBJECT_ID 
ORDER BY schema_name, table_name;