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

时间:2010-09-26 16:31:29

标签: sql sql-server sql-server-2005

我有一个需要多次调用第二个SP的存储过程。唯一改变的是第二个SP的参数。像这样:

 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一样好吗?

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

使用EXEC,就像上面的EXEC storedprocname

一样

sp_executesql通常比EXEC (@sqlstring)更好,因为你有动态SQL,而不是存储过程。因为你正在调用存储过程,你拥有的语法是最好的方法