我想从.NET代码分析SQL Server存储过程,以检索它返回的数据/列的元数据(而不是OUTPUT参数)。就像在VisualStudio上拖放sp一样,它会自动生成列。对我来说,我正在测试一些代码生成可能对我有用。
这些程序包含简单的选择语句,如SELECT a,b FROM c,我想获得有关a和b的元数据。
答案 0 :(得分:2)
您可以使用SET FMTONLY ON
(并执行它) - 但这有点受欢迎。它不包括所有场景(分支等) - 并且仍然可以执行一些代码(扩展存储过程等)。
或者 - 使用表值函数(udfs) - 它们具有更丰富/更正式的元数据。
答案 1 :(得分:1)
在SQL Server 2012 / Denali中,您可以使用sys.dm_exec_describe_first_result_set_for_object
。
返回有关过程中第一个结果集的信息(只要所有代码路径返回此结果集)