我有一个SQL Server数据库,我想知道它有什么列和类型。我更喜欢通过查询而不是使用像Enterprise Manager这样的GUI来实现这一点。有办法做到这一点吗?


当前回答

使用此查询

Select * From INFORMATION_SCHEMA.COLUMNS Where TABLE_NAME = 'TABLENAME'

其他回答

CREATE PROCEDURE [dbo].[describe] 
( 
@SearchStr nvarchar(max) 
) 
AS 
BEGIN 
SELECT  
    CONCAT([COLUMN_NAME],' ',[DATA_TYPE],' ',[CHARACTER_MAXIMUM_LENGTH],' ', 
    (SELECT CASE [IS_NULLABLE] WHEN 'NO' THEN 'NOT NULL' ELSE 'NULL' END),
    (SELECT CASE WHEN [COLUMN_DEFAULT] IS NULL THEN '' ELSE CONCAT(' DEFAULT ',[COLUMN_DEFAULT]) END)
    ) AS DESCRIPTION
    FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME LIKE @SearchStr
END 

有几个方法可以获取一个表的元数据:

EXEC sp_help tablename

将返回几个结果集,描述表、它的列和约束。

INFORMATION_SCHEMA视图将为您提供所需的信息,但不幸的是,您必须手动查询这些视图并连接它们。

你可以使用sp_columns存储过程:

exec sp_columns MyTable

试一试:

EXEC [ServerName].[DatabaseName].dbo.sp_columns 'TableName'

你可以得到一些表结构的信息,比如:

Table_qualifier, table_owner, table_name, column_name, data_type, type_name…

首先连接到你的数据库,

使用DB_name

然后

exec sp_help '生产。Et_Issue”

这里的'production'是模式名。如果你没有图式, 您可以简单地写入sp_help table_name