我应该使用sp_executesql还是EXEC运行存储过程?

问题描述:

我有一个需要多次调用第二个SP的存储过程。唯一改变的是第二个SP的参数。事情是这样的:我应该使用sp_executesql还是EXEC运行存储过程?

SELECT @P1=5, @P2=5 
EXEC MyProc @P1, @P2 

SELECT @P1=0, @P2=1 
EXEC MyProc @P1, @P2 

现在,如果它是动态的SQL我跑,我知道sp_executesql的会比EXEC更好,但因为什么我打电话实际上是一个SP多次我应该仍然使用sp_executesql的或类似EXEC上面显示的一样好?

感谢您的任何帮助。

使用EXEC上面这就像你已经是形式EXEC storedprocname

sp_executesql优于一般EXEC (@sqlstring),你必须动态SQL,而不是一个存储过程。因此,因为您正在调用存储过程,所以您拥有的语法是最好的方法

+0

好的,谢谢您的确认。 – user169867 2010-09-26 17:57:28