我想查询表中所有列的名称。我在以下链接中找到了如何在不同数据库中实现:
但我还需要知道:如何在我使用的 Microsoft SQL Server(2008)中实现此功能?
我想查询表中所有列的名称。我在以下链接中找到了如何在不同数据库中实现:
但我还需要知道:如何在我使用的 Microsoft SQL Server(2008)中实现此功能?
通过查询信息模式视图,您可以获取此信息和更多其他信息。
以下是示例查询:
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = N'Customers'
可以应用于所有这些数据库对象:
Nortwind.
...) - jave.webSELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = N'tableName';
- Pavol Travnik您可以使用存储过程 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 *
from INFORMATION_SCHEMA.COLUMNS
where TABLE_NAME='tableName'
这比从sys.columns
获取更好,因为它直接显示了DATA_TYPE
。
WHERE
子句中添加AND TABLE_SCHEMA ='schemaName'
。 - JohanJOIN sys.types t on c.system_type_id = t.system_type_id
并在您的 'SELECT' 语句中添加 t.name
来获取每个列名旁边的 类型。 - Pac0您可以在 SQL Server 2008 中使用 sp_help
。
sp_help <table_name>;
上述命令的键盘快捷键:选择表名(即将其高亮显示),然后按下ALT+F1。
在 MySql 中,您可以编写此查询以获取列名和所有详细信息,而无需使用 INFORMATION_SCHEMA:
SHOW COLUMNS FROM database_Name.table_name;
通过使用此查询,您可以获得答案:
select Column_name
from Information_schema.columns
where Table_name like 'table name'
SELECT name
FROM sys.columns
WHERE object_id = OBJECT_ID('TABLE_NAME')
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
你可以尝试这个。它会给出所有列名及其相应的数据类型。
desc <TABLE NAME> ;
SELECT column_name, data_type, character_maximum_length, table_name,ordinal_position, is_nullable
FROM information_schema.COLUMNS WHERE table_name LIKE 'YOUR_TABLE_NAME'
ORDER BY ordinal_position
SELECT * FROM my_table WHERE 1=0
。 - bgusach