create proc Search_Data
@Detail varchar(255),
@Address varchar(255),
@DAMode int
as
if @Detail='' set @Detail=null
if @Address='' set @Address=null
if @DAMode='' set @DAMode=null
select * from DADevice
where Detail like '%'+isnull(@Detail,Detail)+'%'
and Address like '%'+isnull(@Address,Address)+'%'
and @DAMode like '%'+isnull(@DAMode,DAMode)+'%'这个是存储过程可以生成,但是运行的时候错误是:
服务器: 消息 245,级别 16,状态 1,过程 Search_Data,行 9
将 varchar 值 '%' 转换为数据类型为 int 的列时发生语法错误。那为老大帮帮忙啊,,我转不过来!~谢谢!~

解决方案 »

  1.   

    declare @damode varchar(50)......
    and @DAMode like '%'+cast(isnull(@DAMode,DAMode) as varchar(50) )+'%'
      

  2.   

    @DAMode int   这个定义的是整型的
      

  3.   

    create proc Search_Data
    @Detail  varchar(255),
    @Address  varchar(255),
    @DAMode  varchar(255)
    as
    if @Detail='' set @Detail=null
    if @Address='' set @Address=null
    if @DAMode='' set @DAMode=null
    select * from DADevice
    where Detail like '%'+isnull(@Detail,Detail)+'%'
    and Address like '%'+isnull(@Address,Address)+'%'
    and @DAMode like '%'+isnull(@DA Mode,DAMode)+'%'