用sp_executesql执行动态SQL语句及获得返回值

网友投稿 874 2022-12-02

用sp_executesql执行动态SQL语句及获得返回值

用sp_executesql执行动态SQL语句及获得返回值

过去我执行拼凑出来的动态SQL语句,都直接使用EXEC @sql 的方式。有好几次,都看到有资料说,应该尽量使用 sp_executesql。

究其原因,是因为仅仅参数不同的情况下,sp_executesql可以重用执行计划,这不就有跟存储过程一样的优势了吗?同时,sp_executesql还可以提供动态SQL语句执行的返回值,方便得很。

但sp_executesql的使用方式看上去比较复杂,一点都不像EXEC那样直观。

用法

为什么有返回值那么重要呢?我在不知道这个用法以前,如果需要捕捉动态SQL语句里的返回值,要借用表对象:

详见拙作:

declare @sql NVARCHAR(MAX) = N'SELECT @i,@j;';declare @paramdefine NVARCHAR(MAX) = N'@i INT,@j INT,@k INT=3';exec sp_executesql @sql,@paramdefine,@i=1,@j=2;

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:SpringBoot 进行限流的操作方法
下一篇:存储过程性能优化
相关文章

 发表评论

暂时没有评论,来抢沙发吧~