日期:2014-05-17  浏览次数:20402 次

SQL传递参数
declare @SqlWhereProject NVARCHAR(500)
set @SqlWhereProject='and ( FProjectNumber like ''%02.C13001%'')'
select * from t_Item_3001 where 1=1 &@SqlWhereProject
执行以上语句时,提示"在将 nvarchar 值 'and ( FProjectNumber like '%02.C13001%')' 转换成数据类型 int 时失败"

------解决方案--------------------

declare @SqlWhereProject NVARCHAR(500),@sql nvarchar(4000)
set @SqlWhereProject='and ( FProjectNumber like ''%02.C13001%'')'
set @sql='select * from t_Item_3001 where 1=1 '+ @SqlWhereProject
exec(@sql)

------解决方案--------------------
外部传进来的变量@SqlWhereProject与sql语句组合,不能那样写,要重新拼写新的sql语句,然后用exec语句执行