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

时间:2015-03-20 16:22:45

标签: sql sql-server tsql ssms

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

Id
Name
BirthDate
Address
State
ZipCode

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

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

2 个答案:

答案 0 :(得分:4)

对于Sql Server 2012及更高版本:

EXEC sp_describe_first_result_set N' SELECT * from customer',null,0;

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

答案 1 :(得分:1)

如果您只需要数据类型,请尝试此操作。您还可以返回其他数据类型信息。查看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