我有一个需要多次调用第二个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一样好吗?
感谢您的帮助。
答案 0 :(得分:2)
使用EXEC,就像上面的EXEC storedprocname
sp_executesql
通常比EXEC (@sqlstring)
更好,因为你有动态SQL,而不是存储过程。因为你正在调用存储过程,你拥有的语法是最好的方法