sql-server – 获取从存储过程返回的列名称/类型

前端之家收集整理的这篇文章主要介绍了sql-server – 获取从存储过程返回的列名称/类型前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有没有办法通过元数据(Information_Schema,也许?)来获取sproc将返回的列的列表?我试图自动化一些代码生成,这将有助于极大地…

解决方法

除非您准备在INFORMATION_SCHEMA.ROUTINES中解析ROUTINE_DEFINITION的内容,否则最好的方法是执行该过程,并从返回的记录中读取列信息.

在.NET中,您可以通过将存储过程的结果读入DataTable并查询Columns属性来执行此操作.

没有简单的方法可以这样做的原因是存储过程可能会根据参数返回不同的结果集.没有固定的结果集格式,就像用户定义的函数一样.

编辑

如另一答案所述,您将需要使用SET FMTONLY ON来确保不返回任何数据.在某些情况下,SET FMTONLY将无法工作,例如当您在存储过程中使用#temp表时,但是有一个workaround.

猜你在找的MsSQL相关文章