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

use*_*867 5 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
Run Code Online (Sandbox Code Playgroud)

现在,如果它是动态SQL我正在运行我知道sp_executesql会比EXEC更好但是因为我实际上在SP中多次调用我应该仍然使用sp_executesql或者如上所示的EXEC一样好吗?

谢谢你的帮助.

gbn*_*gbn 2

像上面那样使用 EXEC ,它是形式EXEC storedprocname

sp_executesqlEXEC (@sqlstring)比通常使用动态 SQL 而不是存储过程的情况要好。因此,因为您正在调用存储过程,所以您拥有的语法是最好的方法