我可以使用以下命令获取SQL Server数据库中的列数:
SELECT COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'Address'
但有没有办法(对于未知数量的列)我可以获得每列的名称和数据类型以及长度?
答案 0 :(得分:55)
您可以[{1}}使用count(*)
而不是SELECT *
,而是返回您想要的所有详细信息,包括data_type
:
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'Address'
上的MSDN文档
答案 1 :(得分:20)
答案 2 :(得分:3)
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