• MSSQLSERVER数据库- SP_EXECUTESQL的使用


    EXEC和SP_EXECUTESQL有什么区别呢?

    1,它们之间最大的区别是嵌入式的参数,如下面一个语句 

    declare @sql nvarchar(2000) 
    declare @id varchar(20) 
    set @id='1' 
    set @sql='select count(*) from emp where id=' + @id 
    exec @sql 

    我想把得到的count(*)传出来,用传统的exec是不好办到的,但是用sp_executesql则很容易就办到了,如下:

    DECLARE @strSql NVARCHAR(2000);
    DECLARE @Params NVARCHAR(2000);
    DECLARE @sl INT;
    
    SET @strSql = 'SELECT @sl = COUNT(*) FROM dbo.SHANGPIN';
    SET @Params = '@sl int out'
    EXEC sp_executesql @strSql,@Params,@sl OUT
    PRINT @sl;

    2.性能 
    可以看到,如果用exec,由于每次传入的@id不一样,所以每次生成的@sql就不一样,这样每执行一次Sql2005就必须重新将要执行的动态Sql重新编译一次 
    但是sp_executesql则不一样,由于将数值参数化,要执行的动态Sql永远不会变化,只是传入的参数的值在变化,那每次执行的时候就秒用重新编译,速度自然快多了

  • 相关阅读:
    【Python】异常处理
    【Python】写入文件
    【Python】从文件中读取数据
    【Python】导入类
    【Python】继承
    【Python】使用类和实例
    SQL HAVING
    SQL GROUP BY
    SQL ORDER BY
    SQL CREATE INDEX
  • 原文地址:https://www.cnblogs.com/cxeye/p/3808119.html
Copyright © 2020-2023  润新知