获取返回列的说明

时间:2014-05-08 13:58:27

标签: c# sql-server

在SQL Server和/或它的C#API中,是否有一种机制可以获取执行任意SQL /预处理语句/存储过程的结果的描述(即列名和数据类型)而不实际执行它?

示例...

select * from my my_table

期望的结果......

col_1        col_2        col_3        ...        col_n
integer      float        varchar(32)             datetime2

或一些等效信息?

2 个答案:

答案 0 :(得分:2)

SET FMTONLY是您正在寻找的:

  

仅返回客户端的元数据。可用于测试响应的格式,而无需实际运行查询。

E.g:

SET FMTONLY ON
GO
select * from my my_table
GO
SET FMTONLY OFF
GO

将生成一个空的结果集。


在C#中,使用SqlCommand对象,您可以指定SchemaOnly CommandBehaviour,并且您可以类似地获得一个空的结果集,然后您可以检查。

答案 1 :(得分:1)

我想你可能会利用这个:

EXEC sp_help my_table

或者在此处查看我的问题/答案:How do I get a list of columns in a table or view?