获取基本的SQL Server表结构信息

时间:2013-02-11 20:10:06

标签: sql sql-server

我可以使用以下命令获取SQL Server数据库中的列数:

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

但有没有办法(对于未知数量的列)我可以获得每列的名称和数据类型以及长度?

6 个答案:

答案 0 :(得分:55)

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

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

INFORMATION_SCHEMA.COLUMNS

上的MSDN文档

答案 1 :(得分:20)

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

exec sp_help 'Address' 

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

答案 2 :(得分:3)

Name and datatype:

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'

答案 3 :(得分:3)

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

答案 4 :(得分:0)

对于总列信息,请使用以下语法: 使用“DBName” 走 执行SP_Columns“TableName”

对于总表信息,请使用以下语法: 使用“DBName” 走 执行SP_help“表名”

答案 5 :(得分:-1)

您可以使用以下功能:

sp_help TableName
sp_helptext ProcedureName