这是一个元问题。使用INFORMATION_SCHEMA
每个数据库提供的,如何发现存储过程的返回值?对于函数,返回值被显式声明并显示在INFORMATION_SCHEMA
下面ROUTINES
。
然而,存储过程似乎是一个奇怪的灰色区域(就像 SP 和函数之间的区别一样)。它们似乎正式没有“返回值”,但最后您可以运行 SELECT 语句,例如:
SELECT RowID = @RowID;
例如; 在 C# 中,您从“RowID”列中读取返回值。这清楚地表明存储过程实际上能够返回值,尽管不像函数那样在 T-SQL 代码的上下文中。
如何在不必解析定义本身的情况下发现这些值及其类型?
编辑
如果你正在搜索这个,存储过程的返回值隐式是整数,但也可以返回称为结果集的数据。