我想查询一个表的所有列的名称。我发现如何做到这一点:
甲骨文 MySQL PostgreSQL
但我也需要知道:如何在Microsoft SQL Server(在我的情况下是2008年)中做到这一点?
我想查询一个表的所有列的名称。我发现如何做到这一点:
甲骨文 MySQL PostgreSQL
但我也需要知道:如何在Microsoft SQL Server(在我的情况下是2008年)中做到这一点?
当前回答
SELECT name
FROM sys.columns
WHERE object_id = OBJECT_ID('TABLE_NAME')
TABLE_NAME是你的表
其他回答
你可以试试这个。这将给出所有列名及其各自的数据类型。
desc <TABLE NAME> ;
SELECT c.Name
FROM sys.columns c
JOIN sys.objects o ON o.object_id = c.object_id
WHERE o.object_id = OBJECT_ID('TABLE_NAME')
ORDER BY c.Name
您可以使用存储过程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
这将从所有表中获取所有列,按表名和列名排序。
SELECT TOP (0) [toID]
,[sourceID]
,[name]
,[address]
FROM [ReportDatabase].[Ticket].[To]
简单,不需要任何系统表
您可以编写此查询来获得列名和所有详细信息,而无需使用 MySql中的INFORMATION_SCHEMA:
SHOW COLUMNS FROM database_Name.table_name;