【发布时间】:2013-11-20 23:40:16
【问题描述】:
我有一个存储过程 GetNumberbyUniversalIDandGroup,它有 2 个输入参数并返回 SELECT 查询的结果。此查询有一行和一列(即单个值)。如何将其分配给调用存储过程中的变量?
我可以使用存储过程的结果吗?例如,以下内容似乎不起作用:
select * from (exec GetNumberbyUniversalIDandGroup '0032409901',1723817)
【问题讨论】:
-
将其从存储过程更改为标量 UDF?
-
这是一个在其他地方使用的现有存储过程,所以我无法更改它,我想使用它而不是创建新的东西
-
但是没有简单的方法可以在查询中组合存储过程。它们不是为此而设计的。您可以使用新名称创建标量 UDF,然后将现有的存储过程设置为调用 UDF 的简单包装器 - 这样您至少不会得到重复的代码,并且现有的调用者不受影响。
-
好吧,这听起来是个好主意。顺便说一句,有没有一种方法可以通过使用光标来提出替代解决方案?
标签: sql-server tsql