获取返回列的描述

本文关键字:描述 返回 获取 | 更新日期: 2023-09-27 18:02:17

在SQL Server和/或其c# API中,是否存在一种机制,通过该机制,我可以获得执行任意SQL/准备语句/存储过程的结果的描述(即列名和数据类型),而无需实际执行它?

例子…

select * from my my_table

想要的结果…

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

或者一些等价的信息?

获取返回列的描述

SET FMTONLY就是你要找的:

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

例如:

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

将产生一个空的结果集。


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

我想你可能会使用这个:

EXEC sp_help my_table

或者在这里看到我的问题/答案:我如何在表或视图中获得列列表?