如何确定SQL Server结果集中的列类型

如何确定SQL Server结果集中的列类型,sql,sql-server,tsql,ssms,Sql,Sql Server,Tsql,Ssms,我有一个存储过程,我正在使用SQLServerManagementStudio(SSMS)和SQLServer2014执行该存储过程,我得到了一个结果集。我想知道是否有可能发现列类型。例如,假设结果集具有以下列: Id Name BirthDate Address State ZipCode 我想发现每一列的类型(例如,“Id”是一个整数,“Name”是一个字符串,等等) 我可以在SSMS中执行此操作而不必查看存储过程内部吗?是否可以运行一些SQL语句来查找列类型?对于SQL Server 2

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

Id
Name
BirthDate
Address
State
ZipCode
我想发现每一列的类型(例如,“Id”是一个整数,“Name”是一个字符串,等等)


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

对于SQL Server 2012及更高版本:

EXEC sp_description_first_result_set N'SELECT*from customer',null,0


如果您只需要数据类型,请尝试此操作。您还可以返回其他数据类型信息。查看SQL_VARIANT_PROPERTY()的文档

理论结果:

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

重复问题。查看Aaron Bertrand的答案这里提到的问题@abhi提供了大量关于如何在SQL的旧版本中实现这一点的信息,此外还有2012年及以后的快速答案。这个问题其实并不是重复的,因为它询问的是一个更新的版本,并且有一个更小更简单的答案。
ID     Name      Birthdate    State     Zipcode
-----------------------------------------------
int    varchar   datetime     varchar   int