繁体   English   中英

从SQL Server数据库中检索一个表的列名

[英]Retrieving the name of columns of one table from a SQL Server database

是否可以在SQL Server数据库中检索表的列名列表?

这适用于任何版本的SQL Server。

SELECT c.COLUMN_NAME 
FROM INFORMATION_SCHEMA.COLUMNS c
WHERE c.TABLE_SCHEMA = 'schemaName'
AND c.TABLE_NAME = 'tableName'
ORDER BY c.ORDINAL_POSITION 

您可以在选择表名的同时按alt + f1,这与以下操作相同:

sp_help @ objname ='表名'

尝试这个:

SELECT 
    c.name 'Column Name',

FROM    
    sys.columns c
INNER JOIN 
    sys.types t ON c.system_type_id = t.system_type_id
LEFT OUTER JOIN 
    sys.index_columns ic ON ic.object_id = c.object_id AND ic.column_id = c.column_id
LEFT OUTER JOIN 
    sys.indexes i ON ic.object_id = i.object_id AND ic.index_id = i.index_id
WHERE
    c.object_id = OBJECT_ID('YourTableName')

或这个:

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

从SQL Server 2005开始(直到编写此答案时为止,一直到SQL Server 2012), sp_columns存储过程都可sp_columns您提供特定表的列列表(还有很多其他内容!)。 返回的结果集将包含您要查找的COLUMN_NAME列。

要使用它,请在数据库中运行以下语句:

EXECUTE sp_columns @table_name='YourTableName'

可以在这里找到Microsoft的sp_columns联机帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM