我可以通过以下方式获取 SQL Server 数据库中的列数:
SELECT COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'Address'
但是有什么方法(对于未知数量的列)我可以获得每列的名称、数据类型和长度吗?
我可以通过以下方式获取 SQL Server 数据库中的列数:
SELECT COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'Address'
但是有什么方法(对于未知数量的列)我可以获得每列的名称、数据类型和长度吗?
而不是使用count(*)
您可以SELECT *
,您将返回您想要的所有详细信息,包括data_type
:
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'Address'
MSDN 文档INFORMATION_SCHEMA.COLUMNS
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'
在查询编辑器中写入表名选择名称并按Alt+F1,它将带来该表的所有信息。
对于总列信息,请使用以下语法:使用 "DBName" go Exec SP_Columns "TableName"
对于总表信息,请使用以下语法:使用 "DBName" go Exec SP_help "Table Name"
您可以使用以下功能:
sp_help TableName
sp_helptext ProcedureName