如何确定 SQL 服务器结果集中的列类型

How To Determine Column Types In A SQL Server Results Set

我有一个正在使用 SQL Server Management Studio (SSMS) 使用 SQL Server 2014 执行的存储过程,我得到了一个结果集。我想知道是否有可能发现列类型。例如,假设结果集有以下列:

Id
Name
BirthDate
Address
State
ZipCode

我想发现每一列的类型(例如 "Id" 是一个整数,"Name" 是一个字符串,等等)

我可以在 SSMS 中执行此操作而不必查看存储过程吗?是否有一些 SQL 语句我可以 运行 找出列类型?

对于 Sql Server 2012 及更高版本:

EXEC sp_describe_first_result_set N'SELECT * 来自客户', null, 0;

https://msdn.microsoft.com/en-us/library/ff878602.aspx

如果您只需要数据类型,那么试试这个。还有其他数据类型信息,您可以 return。查看 SQL_VARIANT_PROPERTY()

的文档

https://msdn.microsoft.com/en-us/library/ms178550.aspx

SELECT TOP 1    SQL_VARIANT_PROPERTY(ID,'basetype') AS ID,
                SQL_VARIANT_PROPERTY(Name,'basetype') AS Name,
                SQL_VARIANT_PROPERTY(BirthDate,'basetype') AS BirthDate,
                SQL_VARIANT_PROPERTY([State],'basetype') AS [State],
                SQL_VARIANT_PROPERTY(Zipcode,'basetype') AS Zipcode                             
FROM yourTable

理论结果:

ID     Name      Birthdate    State     Zipcode
-----------------------------------------------
int    varchar   datetime     varchar   int