我需要将表中的值插入到存储过程中。例如:
exec mysproc @param1='col1', @param2='col2'
这可以使用游标来完成,但有什么方法可以通过设置操作来完成吗?
我需要将表中的值插入到存储过程中。例如:
exec mysproc @param1='col1', @param2='col2'
这可以使用游标来完成,但有什么方法可以通过设置操作来完成吗?
我想您选择的方法将基于您可用的时间量,如果不更深入地了解逻辑,很难说这些方法中的哪一种最耗时。
有几种方法可以解决这个问题。
SELECT Moo, Meow
FROM Woof
WHERE Fu = @ParmX
AND Bar = @ParmY
您的 proc 应该被调用,@ParmX, @ParmY
然后内部的逻辑将以基于集合的方式进行。
不能将存储过程作为“设置操作”的一部分来调用。原因可能是存储过程可能具有任意副作用,例如修改数据、发送额外的结果集(!)或关闭服务器。
游标是解决此问题的规范方法。(唉。)
当然,您可以修改存储过程以采用 TVP。不确定这对你是否可行。