create procedure usp_get_listgoods
@size varchar(50)=null, @type varchar(50)=null, @load varchar(50)=null
as
declare @sql varchar(8000);set @sql='select * from ListGoods where 1=1 '+
case when @size is null then '' else 'and size like ''%'+@size+'%''' end+
case when @type is null then '' else 'and type like ''%'+@type+'%''' end+
case when @load is null then '' else 'and load like ''%'+@load+'%''' end;exec(@sql)
go我想加个条件@id int类型
就是select * from ListGoods wher id=@id 合并到上面的代码里面
create procedure usp_get_listgoods
@size varchar(50)=null, @type varchar(50)=null, @load varchar(50)=null
,@id int
as
declare @sql varchar(8000);set @sql='select * from ListGoods where id='+cast(@id as char(10))
case when @size is null then '' else 'and size like ''%'+@size+'%''' end+
case when @type is null then '' else 'and type like ''%'+@type+'%''' end+
case when @load is null then '' else 'and load like ''%'+@load+'%''' end;exec(@sql)
go
@size varchar(50)=null, @type varchar(50)=null, @load varchar(50)=null,
@id int
as
declare @sql varchar(8000);set @sql='select * from ListGoods where 1=1 '+
case when @size is null then '' else 'and size like ''%'+@size+'%''' end+
case when @type is null then '' else 'and type like ''%'+@type+'%''' end+
case when @load is null then '' else 'and load like ''%'+@load+'%''' end
+' and id='+ltrim(@id) ;exec(@sql)
go
在将 varchar 值 'select * from ListGoods where [BigProviewID]=' 转换成数据类型 int 时失败。