mssql sql server 中 sp_executesql 动态放入 like 关键字的方法


使用 sp_executesql 的优点:
1 使用此关键字执行sql语句,mssql可以缓存相应的执行计划
2 使用此关键字可以对参数,进行过滤判断,当参数为空时,可以直接剔除此查询条件,避免查询语句出现多余的逻辑读,通过减少逻辑读的方式优化sql脚本
sp_executesql 执行语句中使用like 关键字,在参数传入至 sp_executesql 前,我们需要加入一些通配符,然后再将参数传送至 sp_executesql中运行,才能达到模糊查找的功能,
如下示例所示:


举例:

    declare @sql nvarchar(4000)
    declare @fileInfoE varchar(50)
    set @sql ='select * from table where a like @fileInfo';
    
    set @fileInfoE = '%'+@fileInfoE+'%'; 

    exec sp_executesql @sql,N'@fileInfo varchar(50)             
            ',@fileInfo=@fileInfoE