我有一个执行select语句的sproc,结果是我分配给输出参数的单个列和单行。
现在,sproc必须增长才能从单行结果集中返回两列。
保持单一选择的最简洁方法是什么(只是让它返回两列而不是一列)并将两个行值分配给单独的(输出)变量?
感谢。
答案 0 :(得分:1)
如果要查找非标量的返回值(即一组数据),那么您将无法真正使用存储过程。表变量在存储过程中可以是READONLY
。
我建议您将存储过程逻辑转换为Table-Valued Function。只要您没有在函数内部执行任何DML语句,这将没有问题。但根据您的描述,它似乎只是SELECT
。
此外,函数的好处是可以内联查询。
答案 1 :(得分:1)
您只需声明2 output
个参数,并从同一select
select @foo = foo, @bar=bar ...