标签:
sql:exec与sp_excutesql的比较
exec与sp_execute都可以执行存储过程和批处理动态sql语句,以下所属均是关于批处理动态sql语句方面。
一、关于输入参数与输出参数
1、使用EXEC时,如果想访问变量,即有输入参数,那么必须把该变量串联到动态构建的代码字符串中。
2、当我们想要执行下语句输出count(*)时:
若要使用EXEC,则必须要利用建立临时表的方法:
显然,这是非常不方便的。
3、sp_excutesql与exec的最大区别之一是sp_executesql提供一个借口,该接口支持输入参数也支持输出参数。同样是上面输出count(*)d的例子,应用sp_execute如下:
4、在性能方面,如果每次传入的参数@e_no不同,应用sp_excutesql时要执行的动态sql不会变化,只是传入的参数值在变化,每次执行的时候就会秒用重新编译。但是exec不一样,由于每次传入的@e_no不同,所以每次生成的@sql不一样,这样没执行一次就必须要重新编译一次。
标签:
原文地址:http://www.cnblogs.com/darrenliu/p/4434471.html