我在当前的一个中调用存储过程,它返回3个SELECT
语句。
我只需要第一个SELECT
。
我怎样才能做到这一点?我是T-SQL的新手,在C#中我只是得到那些变量,但SQL不能那样工作。
是否可以获得它返回的值?
答案 0 :(得分:1)
我有3种可能性:
1)制作一个没有最后2个sSELECT的新存储过程。
2)将可选参数传递给存储过程,以指示最后2个SELECT是否应该运行。 (如果未传递参数,则默认情况下将运行SELECT。)
3)不是一个优雅的解决方案,但可能适用于您的目的: 在第二个存储过程中,将第一个SELECT输出到全局临时表,然后从该临时表输出SELECT *。 (这将使用存储过程保持所有其他内容相同。)
在第一个存储过程中,在调用第二个存储过程后,从临时表中选择*。 (这将为您提供所需的结果。)在第一个存储过程结束时,删除全局临时表。
一些警告: 如果你有几个人一次点击存储过程,这对单个全局临时表不起作用 - 你必须弄清楚某种命名约定,这样每个用户都可以得到自己独立的表。< / p>
如果结果集中有大量数据,则tempdb数据库不会满意。