我想查询一个表的所有列的名称。我发现如何做到这一点:
甲骨文 MySQL PostgreSQL
但我也需要知道:如何在Microsoft SQL Server(在我的情况下是2008年)中做到这一点?
我想查询一个表的所有列的名称。我发现如何做到这一点:
甲骨文 MySQL PostgreSQL
但我也需要知道:如何在Microsoft SQL Server(在我的情况下是2008年)中做到这一点?
当前回答
您可以使用存储过程sp_columns,它将返回与给定表的所有列相关的信息。更多信息可以在这里找到http://msdn.microsoft.com/en-us/library/ms176077.aspx
也可以通过SQL查询来实现。一些类似这样的东西应该会有帮助:
SELECT * FROM sys.columns WHERE object_id = OBJECT_ID('dbo.yourTableName')
或者一种变体是:
SELECT o.Name, c.Name
FROM sys.columns c
JOIN sys.objects o ON o.object_id = c.object_id
WHERE o.type = 'U'
ORDER BY o.Name, c.Name
这将从所有表中获取所有列,按表名和列名排序。
其他回答
你可以尝试使用:-
USE db_name;
DESCRIBE table_name;
它会给你带有类型的列名。
--This is another variation used to document a large database for conversion (Edited to --remove static columns)
SELECT o.Name as Table_Name
, c.Name as Field_Name
, t.Name as Data_Type
, t.length as Length_Size
, t.prec as Precision_
FROM syscolumns c
INNER JOIN sysobjects o ON o.id = c.id
LEFT JOIN systypes t on t.xtype = c.xtype
WHERE o.type = 'U'
ORDER BY o.Name, c.Name
--In the left join, c.type is replaced by c.xtype to get varchar types
在SQL Server 2008中可以使用sp_help。
sp_help <table_name>;
以上命令的键盘快捷键:选择表名(即突出显示它)并按ALT+F1。
只需运行这个命令
EXEC sp_columns 'Your Table Name'
select *
from INFORMATION_SCHEMA.COLUMNS
where TABLE_NAME='tableName'
这比从sys。列,因为它直接显示DATA_TYPE。