27

我可以通过以下方式获取 SQL Server 数据库中的列数:

SELECT COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'Address'

但是有什么方法(对于未知数量的列)我可以获得每列的名称、数据类型和长度吗?

4

6 回答 6

65

而不是使用count(*)您可以SELECT *,您将返回您想要的所有详细信息,包括data_type

SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'Address'

MSDN 文档INFORMATION_SCHEMA.COLUMNS

于 2013-02-11T20:13:54.507 回答
29

sp_help将为您提供有关表的一大堆信息,包括列、键和约束。例如,运行

exec sp_help 'Address' 

将为您提供有关地址的信息。

于 2013-02-11T20:14:16.173 回答
4

名称和数据类型:

USE OurDatabaseName
GO

SELECT 
    sc.name AS [Columne Name], 
    st1.name AS [User Type],
    st2.name AS [Base Type]
FROM dbo.syscolumns sc
    INNER JOIN dbo.systypes st1 ON st1.xusertype = sc.xusertype
    INNER JOIN dbo.systypes st2 ON st2.xusertype = sc.xtype
-- STEP TWO: Change OurTableName to the table name
WHERE sc.id = OBJECT_ID('OurTableName')
ORDER BY sc.colid

或者:

SELECT COLUMN_NAME AS ColumnName, DATA_TYPE AS DataType, CHARACTER_MAXIMUM_LENGTH AS CharacterLength
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'OurTableName'
于 2013-02-11T20:20:15.953 回答
4

在查询编辑器中写入表名选择名称并按Alt+F1,它将带来该表的所有信息。

于 2015-01-22T06:00:09.007 回答
0

对于总列信息,请使用以下语法:使用 "DBName" go Exec SP_Columns "TableName"

对于总表信息,请使用以下语法:使用 "DBName" go Exec SP_help "Table Name"

于 2013-09-18T10:18:08.397 回答
-1

您可以使用以下功能:

sp_help TableName
sp_helptext ProcedureName
于 2018-07-06T09:30:05.877 回答