加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 16:29:43 所属栏目:MsSql教程 来源:网络整理
导读:有没有办法通过元数据(Information_Schema,也许?)来获取sproc将返回的列的列表?我试图自动化一些代码生成,这将有助于极大地… 解决方法 除非您准备在INFORMATION_SCHEMA.ROUTINES中解析ROUTINE_DEFINITION的内容,否则最好的方法是执行该过程,并从返回的记录
有没有办法通过元数据(Information_Schema,也许?)来获取sproc将返回的列的列表?我试图自动化一些代码生成,这将有助于极大地…

解决方法

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

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

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

编辑

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读