在SQL Server和/或它的C#API中,是否有一种机制可以获取执行任意SQL /预处理语句/存储过程的结果的描述(即列名和数据类型)而不实际执行它?
示例...
select * from my my_table
期望的结果......
col_1 col_2 col_3 ... col_n
integer float varchar(32) datetime2
或一些等效信息?
答案 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)