在sp_executesql中可以执行参数化的sql,但是如果sql中有like,那么一般都要拼字符串,下面的例子把两者结合了起来,既有拼sql的灵活性,又有参数化sql的优点。
declare @likesql nvarchar(32);--定义一个like变量,如果是存储过程,此处可以存储过程的参数
set @likesql = ‘someword%';--把likesql变量赋值,可以赋值成'%xxxxxxxxxxxx%'
declare @selectsql nvarchar(128)--定义sql语句,开始拼sql
set @selectsql = ‘select * from table where [column] like @likepar';—使用@likepar变量进行参数化
exec sp_executesql @selectsql ,n'@likepar as varchar(32)',@likepar = @likesql;--使用sp_executesql来执行