我从另一个调用一个存储过程,我调用的过程有一个输出参数。然后我将输出值传递给局部变量。这一切都很好,但问题是这个过程中还有一个select
语句,所以当我exec
时,程序的结果将在最终结果集中返回。
有没有办法简单地获取输出参数的值,并忽略其他所有内容?
答案 0 :(得分:6)
虽然技术上是,但你不应该这样做。引擎消耗资源以生成您忽略的结果集。您还可能产生不必要的争用。如果您不需要结果集,则需要另一个只能生成所需输出的过程。
答案 1 :(得分:4)
我确信这样做有一些技巧 - 但是脑海中出现的明显解决方案是:
INSERT INTO #my_rubbish_temp_table_that_i_CREATEd_earlier
EXEC dbo.mySproc @a, @b, @c OUTPUT
......根据Remus的回应,这是浪费CPU,I / O等。
如果你可以在存储过程中添加一个允许抑制结果集的附加参数,那就太棒了。