优点在于能缓存TSQL的执行计划.缺点:
 1.只能查询一个表的数据,实际情况往往是需要关联其他表.
 2.查询字段和查询条件置于动态SQL中,输入时易出错.

解决方案 »

  1.   

    你连T-SQL这4个单词都不写全.....
    优点:sp_executesql 可以降低注入风险、减少参数嗅探风险、灵活、返回值等等。
    缺点:调试方面不直观,编写时需要注意符号配对问题。用的比较少,心得不多
      

  2.   

    优点:用存储过程可以防止SQL注入了
    缺点:维护起来麻烦且不适用
      

  3.   

    利用sp_executesql,能够重用执行计划,能够支持输入输出参数。。缺点是维护不是那么方便。
      

  4.   

    存储过程一般来说,之所以效率较高的原因,主要是编译一次,多次运行,而普通的语句,可能由于传入的参数值不同,可能导致重新编译,如果会运行大量的查询语句,那么会有大量的重新编译,会消耗很多cpu时间,必然对系统的性能会有影响。
      

  5.   

    要看的吧,如果你的系统里有好几百个 select * from abcde 那用这个思路是没错的。不过既然都这样了何不考虑Linq呢?